﻿using System;
using System.IO;
using System.Text;
using System.Collections;
using System.Globalization;
using System.Runtime.InteropServices;
using Com = System.Runtime.InteropServices.ComTypes;

namespace NETXPF.Win32
{
    public sealed class API
    {
        private API() { }

        #region Constants

        public const int TTS_NOPREFIX = 0x02;
        public const int TTS_BALLOON = 0x40;
        public const int TTS_ALWAYSTIP = 0x01;

        public const int TTDT_AUTOPOP = 2;
        public const int TTDT_INITIAL = 3;

        public const int TTM_ADDTOOL = WM_USER + 50;
        public const int TTM_DELTOOL = WM_USER + 51;
        public const int TTM_ACTIVATE = WM_USER + 1;
        public const int TTM_SETMAXTIPWIDTH = WM_USER + 24;
        public const int TTM_SETTITLE = WM_USER + 33;
        public const int TTM_SETDELAYTIME = WM_USER + 3;
        public const int TTM_UPDATETIPTEXT = WM_USER + 57;
        public const int TTM_SETTIPBKCOLOR = WM_USER + 19;
        public const int TTM_SETTIPTEXTCOLOR = WM_USER + 20;
        public const int TTM_GETTOOLINFO = WM_USER + 53;
        public const int TTM_SETTOOLINFO = WM_USER + 54;

        public const int TME_HOVER = 0x00000001;
        public const int TME_LEAVE = 0x00000002;
        public const int TME_NONCLIENT = 0x00000010;
        public const int TME_QUERY = 0x40000000;
        public const int TME_CANCEL = unchecked((int)0x80000000);
        public const int LWA_COLORKEY = 0x00000001;
        public const int LWA_ALPHA = 0x00000002;
        public const int ULW_COLORKEY = 0x00000001;
        public const int ULW_ALPHA = 0x00000002;
        public const int ULW_OPAQUE = 0x00000004;
        public const int APPCLASS_MASK = 0xF;
        public const int APPCLASS_MONITOR = 0x1;
        public const int APPCLASS_STANDARD = 0x0;
        public const int APPCMD_CLIENTONLY = 0x10;
        public const int APPCMD_FILTERINITS = 0x20;
        public const int APPCMD_MASK = 0xFF0;
        public const int BDR_INNER = 0xC;
        public const int BDR_OUTER = 0x3;
        public const int BDR_RAISED = 0x5;
        public const int BDR_RAISEDINNER = 0x4;
        public const int BDR_RAISEDOUTER = 0x1;
        public const int BDR_SUNKEN = 0xA;
        public const int BDR_SUNKENINNER = 0x8;
        public const int BDR_SUNKENOUTER = 0x2;
        public const int BF_ADJUST = 0x2000;
        public const int BF_BOTTOM = 0x8;
        public const int BF_BOTTOMLEFT = (BF_BOTTOM | BF_LEFT);
        public const int BF_BOTTOMRIGHT = (BF_BOTTOM | BF_RIGHT);
        public const int BF_DIAGONAL = 0x10;
        public const int BF_DIAGONAL_ENDBOTTOMLEFT = (BF_DIAGONAL | BF_BOTTOM | BF_LEFT);
        public const int BF_DIAGONAL_ENDBOTTOMRIGHT = (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT);
        public const int BF_DIAGONAL_ENDTOPLEFT = (BF_DIAGONAL | BF_TOP | BF_LEFT);
        public const int BF_DIAGONAL_ENDTOPRIGHT = (BF_DIAGONAL | BF_TOP | BF_RIGHT);
        public const int BF_FLAT = 0x4000;
        public const int BF_LEFT = 0x1;
        public const int BF_MIDDLE = 0x800;
        public const int BF_MONO = 0x8000;
        public const int BF_RECT = (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM);
        public const int BF_RIGHT = 0x4;
        public const int BF_SOFT = 0x1000;
        public const int BF_TOP = 0x2;
        public const int BF_TOPLEFT = (BF_TOP | BF_LEFT);
        public const int BF_TOPRIGHT = (BF_TOP | BF_RIGHT);
        public const int BIF_BROWSEFORCOMPUTER = 4096;
        public const int BIF_BROWSEFORPRINTER = 8192;
        public const int BIF_BROWSEINCLUDEFILES = 16384;
        public const int BIF_BROWSEINCLUDEURLS = 128;
        public const int BIF_DONTGOBELOWDOMAIN = 2;
        public const int BIF_EDITBOX = 16;
        public const int BIF_RETURNFSANCESTORS = 8;
        public const int BIF_RETURNONLYFSDIRS = 1;
        public const int BIF_SHAREABLE = 32768;
        public const int BIF_STATUSTEXT = 4;
        public const int BIF_USENEWUI = 64;
        public const int BIF_VALIDATE = 32;
        public const int BM_GETCHECK = 0xF0;
        public const int BM_GETSTATE = 0xF2;
        public const int BM_SETCHECK = 0xF1;
        public const int BM_SETSTATE = 0xF3;
        public const int BM_SETSTYLE = 0xF4;
        public const int BN_CLICKED = 0;
        public const int BN_DISABLE = 4;
        public const int BN_DOUBLECLICKED = 5;
        public const int BN_HILITE = 2;
        public const int BN_PAINT = 1;
        public const int BN_UNHILITE = 3;
        public const int BS_3STATE = 0x5;
        public const int BS_AUTO3STATE = 0x6;
        public const int BS_AUTOCHECKBOX = 0x3;
        public const int BS_AUTORADIOBUTTON = 0x9;
        public const int BS_CHECKBOX = 0x2;
        public const int BS_DEFPUSHBUTTON = 0x1;
        public const int BS_GROUPBOX = 0x7;
        public const int BS_LEFTTEXT = 0x20;
        public const int BS_OWNERDRAW = 0xB;
        public const int BS_PUSHBUTTON = 0x0;
        public const int BS_RADIOBUTTON = 0x4;
        public const int BS_USERBUTTON = 0x8;
        public const int CADV_LATEACK = 0xFFFF;
        public const int CBF_FAIL_ADVISES = 0x4000;
        public const int CBF_FAIL_ALLSVRXACTIONS = 0x3F000;
        public const int CBF_FAIL_CONNECTIONS = 0x2000;
        public const int CBF_FAIL_EXECUTES = 0x8000;
        public const int CBF_FAIL_POKES = 0x10000;
        public const int CBF_FAIL_REQUESTS = 0x20000;
        public const int CBF_FAIL_SELFCONNECTIONS = 0x1000;
        public const int CBF_SKIP_ALLNOTIFICATIONS = 0x3C0000;
        public const int CBF_SKIP_CONNECT_CONFIRMS = 0x40000;
        public const int CBF_SKIP_DISCONNECTS = 0x200000;
        public const int CBF_SKIP_REGISTRATIONS = 0x80000;
        public const int CBF_SKIP_UNREGISTRATIONS = 0x100000;
        public const int CBN_CLOSEUP = 8;
        public const int CBN_DBLCLK = 2;
        public const int CBN_DROPDOWN = 7;
        public const int CBN_EDITCHANGE = 5;
        public const int CBN_EDITUPDATE = 6;
        public const int CBN_ERRSPACE = (-1);
        public const int CBN_KILLFOCUS = 4;
        public const int CBN_SELCHANGE = 1;
        public const int CBN_SELENDCANCEL = 10;
        public const int CBN_SELENDOK = 9;
        public const int CBN_SETFOCUS = 3;
        public const int CBR_BLOCK = 0xFFFF;
        public const int CBS_AUTOHSCROLL = 0x40;
        public const int CBS_DISABLENOSCROLL = 0x800;
        public const int CBS_DROPDOWN = 0x2;
        public const int CBS_DROPDOWNLIST = 0x3;
        public const int CBS_HASSTRINGS = 0x200;
        public const int CBS_NOINTEGRALHEIGHT = 0x400;
        public const int CBS_OEMCONVERT = 0x80;
        public const int CBS_OWNERDRAWFIXED = 0x10;
        public const int CBS_OWNERDRAWVARIABLE = 0x20;
        public const int CBS_SIMPLE = 0x1;
        public const int CBS_SORT = 0x100;
        public const int CB_ADDSTRING = 0x143;
        public const int CB_DELETESTRING = 0x144;
        public const int CB_DIR = 0x145;
        public const int CB_ERR = (-1);
        public const int CB_ERRSPACE = (-2);
        public const int CB_FINDSTRING = 0x14C;
        public const int CB_FINDSTRINGEXACT = 0x158;
        public const int CB_GETCOUNT = 0x146;
        public const int CB_GETCURSEL = 0x147;
        public const int CB_GETDROPPEDCONTROLRECT = 0x152;
        public const int CB_GETDROPPEDSTATE = 0x157;
        public const int CB_GETEDITSEL = 0x140;
        public const int CB_GETEXTENDEDUI = 0x156;
        public const int CB_GETITEMDATA = 0x150;
        public const int CB_GETITEMHEIGHT = 0x154;
        public const int CB_GETLBTEXT = 0x148;
        public const int CB_GETLBTEXTLEN = 0x149;
        public const int CB_GETLOCALE = 0x15A;
        public const int CB_INSERTSTRING = 0x14A;
        public const int CB_LIMITTEXT = 0x141;
        public const int CB_MSGMAX = 0x15B;
        public const int CB_OKAY = 0;
        public const int CB_RESETCONTENT = 0x14B;
        public const int CB_SELECTSTRING = 0x14D;
        public const int CB_SETCURSEL = 0x14E;
        public const int CB_SETEDITSEL = 0x142;
        public const int CB_SETEXTENDEDUI = 0x155;
        public const int CB_SETITEMDATA = 0x151;
        public const int CB_SETITEMHEIGHT = 0x153;
        public const int CB_SETLOCALE = 0x159;
        public const int CB_SHOWDROPDOWN = 0x14F;
        public const int CF_BITMAP = 2;
        public const int CF_DIB = 8;
        public const int CF_DIF = 5;
        public const int CF_DSPBITMAP = 0x82;
        public const int CF_DSPENHMETAFILE = 0x8E;
        public const int CF_DSPMETAFILEPICT = 0x83;
        public const int CF_DSPTEXT = 0x81;
        public const int CF_ENHMETAFILE = 14;
        public const int CF_GDIOBJFIRST = 0x300;
        public const int CF_GDIOBJLAST = 0x3FF;
        public const int CF_METAFILEPICT = 3;
        public const int CF_OEMTEXT = 7;
        public const int CF_OWNERDISPLAY = 0x80;
        public const int CF_PALETTE = 9;
        public const int CF_PENDATA = 10;
        public const int CF_PRIVATEFIRST = 0x200;
        public const int CF_PRIVATELAST = 0x2FF;
        public const int CF_RIFF = 11;
        public const int CF_SYLK = 4;
        public const int CF_TEXT = 1;
        public const int CF_TIFF = 6;
        public const int CF_UNICODETEXT = 13;
        public const int CF_WAVE = 12;
        public const int CN_EVENT = 0x4;
        public const int CN_RECEIVE = 0x1;
        public const int CN_TRANSMIT = 0x2;
        public const int COLOR_ACTIVEBORDER = 10;
        public const int COLOR_ACTIVECAPTION = 2;
        public const int COLOR_APPWORKSPACE = 12;
        public const int COLOR_BACKGROUND = 1;
        public const int COLOR_BTNFACE = 15;
        public const int COLOR_BTNHIGHLIGHT = 20;
        public const int COLOR_BTNSHADOW = 16;
        public const int COLOR_BTNTEXT = 18;
        public const int COLOR_CAPTIONTEXT = 9;
        public const int COLOR_GRAYTEXT = 17;
        public const int COLOR_HIGHLIGHT = 13;
        public const int COLOR_HIGHLIGHTTEXT = 14;
        public const int COLOR_INACTIVEBORDER = 11;
        public const int COLOR_INACTIVECAPTION = 3;
        public const int COLOR_INACTIVECAPTIONTEXT = 19;
        public const int COLOR_MENU = 4;
        public const int COLOR_MENUTEXT = 7;
        public const int COLOR_SCROLLBAR = 0;
        public const int COLOR_WINDOW = 5;
        public const int COLOR_WINDOWFRAME = 6;
        public const int COLOR_WINDOWTEXT = 8;
        public const int CP_WINANSI = 1004;
        public const int CP_WINUNICODE = 1200;
        public const int CS_BYTEALIGNCLIENT = 0x1000;
        public const int CS_BYTEALIGNWINDOW = 0x2000;
        public const int CS_CLASSDC = 0x40;
        public const int CS_DBLCLKS = 0x8;
        public const int CS_HREDRAW = 0x2;
        public const int CS_KEYCVTWINDOW = 0x4;
        public const int CS_NOCLOSE = 0x200;
        public const int CS_NOKEYCVT = 0x100;
        public const int CS_OWNDC = 0x20;
        public const int CS_PARENTDC = 0x80;
        public const int CS_PUBLICCLASS = 0x4000;
        public const int CS_SAVEBITS = 0x800;
        public const int CS_VREDRAW = 0x1;
        public const int CTLCOLOR_BTN = 3;
        public const int CTLCOLOR_DLG = 4;
        public const int CTLCOLOR_EDIT = 1;
        public const int CTLCOLOR_LISTBOX = 2;
        public const int CTLCOLOR_MAX = 8;
        public const int CTLCOLOR_MSGBOX = 0;
        public const int CTLCOLOR_SCROLLBAR = 5;
        public const int CTLCOLOR_STATIC = 6;
        public const int CW_USEDEFAULT = unchecked((int)0x80000000);
        public const int DCX_CACHE = 0x2;
        public const int DCX_CLIPCHILDREN = 0x8;
        public const int DCX_CLIPSIBLINGS = 0x10;
        public const int DCX_EXCLUDERGN = 0x40;
        public const int DCX_EXCLUDEUPDATE = 0x100;
        public const int DCX_INTERSECTRGN = 0x80;
        public const int DCX_INTERSECTUPDATE = 0x200;
        public const int DCX_LOCKWINDOWUPDATE = 0x400;
        public const int DCX_NORECOMPUTE = 0x100000;
        public const int DCX_NORESETATTRS = 0x4;
        public const int DCX_PARENTCLIP = 0x20;
        public const int DCX_VALIDATE = 0x200000;
        public const int DCX_WINDOW = 0x1;
        public const int DC_HASDEFID = 0x534;
        public const int DDE_FACK = 0x8000;
        public const int DDE_FACKREQ = 0x8000;
        public const int DDE_FACKRESERVED = (~(DDE_FACK | DDE_FBUSY | DDE_FAPPSTATUS));
        public const int DDE_FADVRESERVED = (~(DDE_FACKREQ | DDE_FDEFERUPD));
        public const int DDE_FAPPSTATUS = 0xFF;
        public const int DDE_FBUSY = 0x4000;
        public const int DDE_FDATRESERVED = (~(DDE_FACKREQ | DDE_FRELEASE | DDE_FREQUESTED));
        public const int DDE_FDEFERUPD = 0x4000;
        public const int DDE_FNOTPROCESSED = 0x0;
        public const int DDE_FPOKRESERVED = (~(DDE_FRELEASE));
        public const int DDE_FRELEASE = 0x2000;
        public const int DDE_FREQUESTED = 0x1000;
        public const int DDL_ARCHIVE = 0x20;
        public const int DDL_DIRECTORY = 0x10;
        public const int DDL_DRIVES = 0x4000;
        public const int DDL_EXCLUSIVE = 0x8000;
        public const int DDL_HIDDEN = 0x2;
        public const int DDL_POSTMSGS = 0x2000;
        public const int DDL_READONLY = 0x1;
        public const int DDL_READWRITE = 0x0;
        public const int DDL_SYSTEM = 0x4;
        public const int DESKTOP_CREATEMENU = 0x4;
        public const int DESKTOP_CREATEWINDOW = 0x2;
        public const int DESKTOP_ENUMERATE = 0x40;
        public const int DESKTOP_HOOKCONTROL = 0x8;
        public const int DESKTOP_JOURNALPLAYBACK = 0x20;
        public const int DESKTOP_JOURNALRECORD = 0x10;
        public const int DESKTOP_READOBJECTS = 0x1;
        public const int DESKTOP_WRITEOBJECTS = 0x80;
        public const int DLGC_BUTTON = 0x2000;
        public const int DLGC_DEFPUSHBUTTON = 0x10;
        public const int DLGC_HASSETSEL = 0x8;
        public const int DLGC_RADIOBUTTON = 0x40;
        public const int DLGC_STATIC = 0x100;
        public const int DLGC_UNDEFPUSHBUTTON = 0x20;
        public const int DLGC_WANTALLKEYS = 0x4;
        public const int DLGC_WANTARROWS = 0x1;
        public const int DLGC_WANTCHARS = 0x80;
        public const int DLGC_WANTMESSAGE = 0x4;
        public const int DLGC_WANTTAB = 0x2;
        public const int DLGWINDOWEXTRA = 30;
        public const int DMLERR_ADVACKTIMEOUT = 0x4000;
        public const int DMLERR_BUSY = 0x4001;
        public const int DMLERR_DATAACKTIMEOUT = 0x4002;
        public const int DMLERR_DLL_NOT_INITIALIZED = 0x4003;
        public const int DMLERR_DLL_USAGE = 0x4004;
        public const int DMLERR_EXECACKTIMEOUT = 0x4005;
        public const int DMLERR_FIRST = 0x4000;
        public const int DMLERR_INVALIDPARAMETER = 0x4006;
        public const int DMLERR_LAST = 0x4011;
        public const int DMLERR_LOW_MEMORY = 0x4007;
        public const int DMLERR_MEMORY_ERROR = 0x4008;
        public const int DMLERR_NOTPROCESSED = 0x4009;
        public const int DMLERR_NO_CONV_ESTABLISHED = 0x400A;
        public const int DMLERR_NO_ERROR = 0;
        public const int DMLERR_POKEACKTIMEOUT = 0x400B;
        public const int DMLERR_POSTMSG_FAILED = 0x400C;
        public const int DMLERR_REENTRANCY = 0x400D;
        public const int DMLERR_SERVER_DIED = 0x400E;
        public const int DMLERR_SYS_ERROR = 0x400F;
        public const int DMLERR_UNADVACKTIMEOUT = 0x4010;
        public const int DMLERR_UNFOUND_QUEUE_ID = 0x4011;
        public const int DM_GETDEFID = WM_USER + 0;
        public const int DM_SETDEFID = WM_USER + 1;
        public const int DNS_FILTEROFF = 0x8;
        public const int DNS_FILTERON = 0x4;
        public const int DNS_REGISTER = 0x1;
        public const int DNS_UNREGISTER = 0x2;
        public const int DS_ABSALIGN = 0x1;
        public const int DS_LOCALEDIT = 0x20;
        public const int DS_MODALFRAME = 0x80;
        public const int DS_NOIDLEMSG = 0x100;
        public const int DS_SETFONT = 0x40;
        public const int DS_SETFOREGROUND = 0x200;
        public const int DS_SYSMODAL = 0x2;
        public const int DT_BOTTOM = 0x8;
        public const int DT_CALCRECT = 0x400;
        public const int DT_CENTER = 0x1;
        public const int DT_EDITCONTROL = 0x2000;
        public const int DT_END_ELLIPSIS = 0x8000;
        public const int DT_EXPANDTABS = 0x40;
        public const int DT_EXTERNALLEADING = 0x200;
        public const int DT_INTERNAL = 0x1000;
        public const int DT_LEFT = 0x0;
        public const int DT_MODIFYSTRING = 0x10000;
        public const int DT_NOCLIP = 0x100;
        public const int DT_NOPREFIX = 0x800;
        public const int DT_PATH_ELLIPSIS = 0x4000;
        public const int DT_RIGHT = 0x2;
        public const int DT_RTLREADING = 0x20000;
        public const int DT_SINGLELINE = 0x20;
        public const int DT_TABSTOP = 0x80;
        public const int DT_TOP = 0x0;
        public const int DT_VCENTER = 0x4;
        public const int DT_WORDBREAK = 0x10;
        public const int DT_WORD_ELLIPSIS = 0x40000;
        public const int DWL_DLGPROC = 4;
        public const int DWL_MSGRESULT = 0;
        public const int DWL_USER = 8;
        public const int EC_DISABLE = ST_BLOCKED;
        public const int EC_ENABLEALL = 0;
        public const int EC_ENABLEONE = ST_BLOCKNEXT;
        public const int EC_QUERYWAITING = 2;
        public const int EDGE_BUMP = (BDR_RAISEDOUTER | BDR_SUNKENINNER);
        public const int EDGE_ETCHED = (BDR_SUNKENOUTER | BDR_RAISEDINNER);
        public const int EDGE_RAISED = (BDR_RAISEDOUTER | BDR_RAISEDINNER);
        public const int EDGE_SUNKEN = (BDR_SUNKENOUTER | BDR_SUNKENINNER);
        public const int EM_CANPASTE = 0x432;
        public const int EM_CANREDO = 0x455;
        public const int EM_CANUNDO = 0xC6;
        public const int EM_CHARFROMPOS = 0x427;
        public const int EM_DISPLAYBAND = 0x433;
        public const int EM_EMPTYUNDOBUFFER = 0xCD;
        public const int EM_EXGETSEL = 0x434;
        public const int EM_EXLIMITTEXT = 0x435;
        public const int EM_EXLINEFROMCHAR = 0x436;
        public const int EM_EXSETSEL = 0x437;
        public const int EM_FINDTEXT = 0x438;
        public const int EM_FINDTEXTEX = 0x44F;
        public const int EM_FINDWORDBREAK = 0x44C;
        public const int EM_FMTLINES = 0xC8;
        public const int EM_FORMATRANGE = 0x439;
        public const int EM_GETCHARFORMAT = 0x43A;
        public const int EM_GETEVENTMASK = 0x43B;
        public const int EM_GETFIRSTVISIBLELINE = 0xCE;
        public const int EM_GETLIMITTEXT = 0x425;
        public const int EM_GETLINE = 0xC4;
        public const int EM_GETLINECOUNT = 0xBA;
        public const int EM_GETMODIFY = 0xB8;
        public const int EM_GETOLEINTERFACE = 0x43C;
        public const int EM_GETOPTIONS = 0x44E;
        public const int EM_GETPARAFORMAT = 0x43D;
        public const int EM_GETPASSWORDCHAR = 0xD2;
        public const int EM_GETRECT = 0xB2;
        public const int EM_GETREDONAME = 0x457;
        public const int EM_GETSEL = 0xB0;
        public const int EM_GETSELTEXT = 0x43E;
        public const int EM_GETTEXTMODE = 0x45A;
        public const int EM_GETTEXTRANGE = 0x44B;
        public const int EM_GETTHUMB = 0xBE;
        public const int EM_GETUNDONAME = 0x456;
        public const int EM_GETWORDBREAKPROC = 0xD1;
        public const int EM_HIDESELECTION = 0x43F;
        public const int EM_LIMITTEXT = 0xC5;
        public const int EM_LINEFROMCHAR = 0xC9;
        public const int EM_LINEINDEX = 0xBB;
        public const int EM_LINELENGTH = 0xC1;
        public const int EM_LINESCROLL = 0xB6;
        public const int EM_PASTESPECIAL = 0x440;
        public const int EM_POSFROMCHAR = 0x426;
        public const int EM_REDO = 0x454;
        public const int EM_REPLACESEL = 0xC2;
        public const int EM_REQUESTRESIZE = 0x441;
        public const int EM_SCROLL = 0xB5;
        public const int EM_SCROLLCARET = 0xB7;
        public const int EM_SELECTIONTYPE = 0x442;
        public const int EM_SETBKGNDCOLOR = 0x443;
        public const int EM_SETCHARFORMAT = 0x444;
        public const int EM_SETEVENTMASK = 0x445;
        public const int EM_SETMODIFY = 0xB9;
        public const int EM_SETOLECALLBACK = 0x446;
        public const int EM_SETOPTIONS = 0x44D;
        public const int EM_SETPARAFORMAT = 0x447;
        public const int EM_SETPASSWORDCHAR = 0xCC;
        public const int EM_SETREADONLY = 0xCF;
        public const int EM_SETRECT = 0xB3;
        public const int EM_SETRECTNP = 0xB4;
        public const int EM_SETSEL = 0xB1;
        public const int EM_SETTABSTOPS = 0xCB;
        public const int EM_SETTARGETDEVICE = 0x448;
        public const int EM_SETTEXTMODE = 0x459;
        public const int EM_SETUNDOLIMIT = 0x452;
        public const int EM_SETWORDBREAKPROC = 0xD0;
        public const int EM_STOPGROUPTYPING = 0x458;
        public const int EM_STREAMIN = 0x449;
        public const int EM_STREAMOUT = 0x44A;
        public const int EM_UNDO = 0xC7;
        public const int EN_CHANGE = 0x300;
        public const int EN_ERRSPACE = 0x500;
        public const int EN_HSCROLL = 0x601;
        public const int EN_KILLFOCUS = 0x200;
        public const int EN_MAXTEXT = 0x501;
        public const int EN_SETFOCUS = 0x100;
        public const int EN_UPDATE = 0x400;
        public const int EN_VSCROLL = 0x602;
        public const int ESB_DISABLE_BOTH = 0x3;
        public const int ESB_DISABLE_DOWN = 0x2;
        public const int ESB_DISABLE_LEFT = 0x1;
        public const int ESB_DISABLE_LTUP = ESB_DISABLE_LEFT;
        public const int ESB_DISABLE_RIGHT = 0x2;
        public const int ESB_DISABLE_RTDN = ESB_DISABLE_RIGHT;
        public const int ESB_DISABLE_UP = 0x1;
        public const int ESB_ENABLE_BOTH = 0x0;
        public const int ES_AUTOHSCROLL = 0x80;
        public const int ES_AUTOVSCROLL = 0x40;
        public const int ES_CENTER = 0x1;
        public const int ES_LEFT = 0x0;
        public const int ES_LOWERCASE = 0x10;
        public const int ES_MULTILINE = 0x4;
        public const int ES_NOHIDESEL = 0x100;
        public const int ES_OEMCONVERT = 0x400;
        public const int ES_PASSWORD = 0x20;
        public const int ES_READONLY = 0x800;
        public const int ES_RIGHT = 0x2;
        public const int ES_UPPERCASE = 0x8;
        public const int ES_WANTRETURN = 0x1000;
        public const int EWX_FORCE = 4;
        public const int EWX_LOGOFF = 0;
        public const int EWX_REBOOT = 2;
        public const int EWX_SHUTDOWN = 1;
        public const int FALT = 0x10;
        public const int FCONTROL = 0x8;
        public const int FNOINVERT = 0x2;
        public const int FSHIFT = 0x4;
        public const int FVIRTKEY = 0x1;
        public const int GCL_CBCLSEXTRA = (-20);
        public const int GCL_CBWNDEXTRA = (-18);
        public const int GCL_HBRBACKGROUND = (-10);
        public const int GCL_HCURSOR = (-12);
        public const int GCL_HICON = (-14);
        public const int GCL_HMODULE = (-16);
        public const int GCL_MENUNAME = (-8);
        public const int GCL_STYLE = (-26);
        public const int GCL_WNDPROC = (-24);
        public const int GCW_ATOM = (-32);
        public const int GWL_EXSTYLE = (-20);
        public const int GWL_HINSTANCE = (-6);
        public const int GWL_HWNDPARENT = (-8);
        public const int GWL_ID = (-12);
        public const int GWL_STYLE = (-16);
        public const int GWL_USERDATA = (-21);
        public const int GWL_WNDPROC = (-4);
        public const int GW_CHILD = 5;
        public const int GW_HWNDFIRST = 0;
        public const int GW_HWNDLAST = 1;
        public const int GW_HWNDNEXT = 2;
        public const int GW_HWNDPREV = 3;
        public const int GW_MAX = 5;
        public const int GW_OWNER = 4;
        public const int HCBT_ACTIVATE = 5;
        public const int HCBT_CLICKSKIPPED = 6;
        public const int HCBT_CREATEWND = 3;
        public const int HCBT_DESTROYWND = 4;
        public const int HCBT_KEYSKIPPED = 7;
        public const int HCBT_MINMAX = 1;
        public const int HCBT_MOVESIZE = 0;
        public const int HCBT_QS = 2;
        public const int HCBT_SETFOCUS = 9;
        public const int HCBT_SYSCOMMAND = 8;
        public const int HC_ACTION = 0;
        public const int HC_GETNEXT = 1;
        public const int HC_NOREM = HC_NOREMOVE;
        public const int HC_NOREMOVE = 3;
        public const int HC_SKIP = 2;
        public const int HC_SYSMODALOFF = 5;
        public const int HC_SYSMODALON = 4;
        public const Int32 HDI_WIDTH = 0x0001;
        public const Int32 HDI_HEIGHT = HDI_WIDTH;
        public const Int32 HDI_TEXT = 0x0002;
        public const Int32 HDI_FORMAT = 0x0004;
        public const Int32 HDI_LPARAM = 0x0008;
        public const Int32 HDI_BITMAP = 0x0010;
        public const Int32 HDI_IMAGE = 0x0020;
        public const Int32 HDI_DI_SETITEM = 0x0040;
        public const Int32 HDI_ORDER = 0x0080;
        public const Int32 HDI_FILTER = 0x0100;		// 0x0500

        public const Int32 HDF_LEFT = 0x0000;
        public const Int32 HDF_RIGHT = 0x0001;
        public const Int32 HDF_CENTER = 0x0002;
        public const Int32 HDF_JUSTIFYMASK = 0x0003;
        public const Int32 HDF_RTLREADING = 0x0004;
        public const Int32 HDF_OWNERDRAW = 0x8000;
        public const Int32 HDF_STRING = 0x4000;
        public const Int32 HDF_BITMAP = 0x2000;
        public const Int32 HDF_BITMAP_ON_RIGHT = 0x1000;
        public const Int32 HDF_IMAGE = 0x0800;
        public const Int32 HDF_SORTUP = 0x0400;		// 0x0501
        public const Int32 HDF_SORTDOWN = 0x0200;		// 0x0501

        public const Int32 LVM_FIRST = 0x1000;		// List messages
        public const Int32 LVM_GETHEADER = LVM_FIRST + 31;

        public const Int32 HDM_FIRST = 0x1200;		// Header messages
        public const Int32 HDM_SETIMAGELIST = HDM_FIRST + 8;
        public const Int32 HDM_GETIMAGELIST = HDM_FIRST + 9;
        public const Int32 HDM_GETITEM = HDM_FIRST + 11;
        public const Int32 HDM_SETITEM = HDM_FIRST + 12;
        public const int HDATA_APPOWNED = 0x1;
        public const int HELP_COMMAND = 0x102;
        public const int HELP_CONTENTS = 0x3;
        public const int HELP_CONTEXT = 0x1;
        public const int HELP_CONTEXTPOPUP = 0x8;
        public const int HELP_FORCEFILE = 0x9;
        public const int HELP_HELPONHELP = 0x4;
        public const int HELP_INDEX = 0x3;
        public const int HELP_KEY = 0x101;
        public const int HELP_MULTIKEY = 0x201;
        public const int HELP_PARTIALKEY = 0x105;
        public const int HELP_QUIT = 0x2;
        public const int HELP_SETCONTENTS = 0x5;
        public const int HELP_SETINDEX = 0x5;
        public const int HELP_SETWINPOS = 0x203;
        public const int HIDE_WINDOW = 0;
        public const int HKL_NEXT = 1;
        public const int HKL_PREV = 0;
        public const int HSHELL_ACTIVATESHELLWINDOW = 3;
        public const int HSHELL_WINDOWCREATED = 1;
        public const int HSHELL_WINDOWDESTROYED = 2;
        public const int HTBORDER = 18;
        public const int HTBOTTOM = 15;
        public const int HTBOTTOMLEFT = 16;
        public const int HTBOTTOMRIGHT = 17;
        public const int HTCAPTION = 2;
        public const int HTCLIENT = 1;
        public const int HTERROR = (-2);
        public const int HTGROWBOX = 4;
        public const int HTHSCROLL = 6;
        public const int HTLEFT = 10;
        public const int HTMAXBUTTON = 9;
        public const int HTMENU = 5;
        public const int HTMINBUTTON = 8;
        public const int HTNOWHERE = 0;
        public const int HTREDUCE = HTMINBUTTON;
        public const int HTRIGHT = 11;
        public const int HTSIZE = HTGROWBOX;
        public const int HTSIZEFIRST = HTLEFT;
        public const int HTSIZELAST = HTBOTTOMRIGHT;
        public const int HTSYSMENU = 3;
        public const int HTTOP = 12;
        public const int HTTOPLEFT = 13;
        public const int HTTOPRIGHT = 14;
        public const int HTTRANSPARENT = (-1);
        public const int HTVSCROLL = 7;
        public const int HTZOOM = HTMAXBUTTON;

        public const int IDABORT = 3;
        public const int IDCANCEL = 2;
        public const int IDC_APPSTARTING = 32650;
        public const int IDC_ARROW = 32512;
        public const int IDC_CROSS = 32515;
        public const int IDC_IBEAM = 32513;
        public const int IDC_ICON = 32641;
        public const int IDC_NO = 32648;
        public const int IDC_SIZE = 32640;
        public const int IDC_SIZEALL = 32646;
        public const int IDC_SIZENESW = 32643;
        public const int IDC_SIZENS = 32645;
        public const int IDC_SIZENWSE = 32642;
        public const int IDC_SIZEWE = 32644;
        public const int IDC_UPARROW = 32516;
        public const int IDC_WAIT = 32514;
        public const int IDHOT_SNAPDESKTOP = (-2);
        public const int IDHOT_SNAPWINDOW = (-1);
        public const int IDIGNORE = 5;
        public const int IDI_APPLICATION = 32512;
        public const int IDI_ASTERISK = 32516;
        public const int IDI_EXCLAMATION = 32515;
        public const int IDI_HAND = 32513;
        public const int IDI_QUESTION = 32514;
        public const int IDNO = 7;
        public const int IDOK = 1;
        public const int IDRETRY = 4;
        public const int IDYES = 6;
        public const int INVALID_HANDLE_VALUE = -1;
        public const int KEYEVENTF_EXTENDEDKEY = 0x1;
        public const int KEYEVENTF_KEYUP = 0x2;
        public const int KF_ALTDOWN = 0x2000;
        public const int KF_DLGMODE = 0x800;
        public const int KF_EXTENDED = 0x100;
        public const int KF_MENUMODE = 0x1000;
        public const int KF_REPEAT = 0x4000;
        public const int KF_UP = 0x8000;
        public const int KLF_ACTIVATE = 0x1;
        public const int KLF_REORDER = 0x8;
        public const int KLF_SUBSTITUTE_OK = 0x2;
        public const int KLF_UNLOADPREVIOUS = 0x4;
        public const int KL_NAMELENGTH = 9;
        public const int LBN_DBLCLK = 2;
        public const int LBN_ERRSPACE = (-2);
        public const int LBN_KILLFOCUS = 5;
        public const int LBN_SELCANCEL = 3;
        public const int LBN_SELCHANGE = 1;
        public const int LBN_SETFOCUS = 4;
        public const int LBS_DISABLENOSCROLL = 0x1000;
        public const int LBS_EXTENDEDSEL = 0x800;
        public const int LBS_HASSTRINGS = 0x40;
        public const int LBS_MULTICOLUMN = 0x200;
        public const int LBS_MULTIPLESEL = 0x8;
        public const int LBS_NODATA = 0x2000;
        public const int LBS_NOINTEGRALHEIGHT = 0x100;
        public const int LBS_NOREDRAW = 0x4;
        public const int LBS_NOTIFY = 0x1;
        public const int LBS_OWNERDRAWFIXED = 0x10;
        public const int LBS_OWNERDRAWVARIABLE = 0x20;
        public const int LBS_SORT = 0x2;
        public const int LBS_STANDARD = (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER);
        public const int LBS_USETABSTOPS = 0x80;
        public const int LBS_WANTKEYBOARDINPUT = 0x400;
        public const int LB_ADDFILE = 0x196;
        public const int LB_ADDSTRING = 0x180;
        public const int LB_CTLCODE = 0;
        public const int LB_DELETESTRING = 0x182;
        public const int LB_DIR = 0x18D;
        public const int LB_ERR = (-1);
        public const int LB_ERRSPACE = (-2);
        public const int LB_FINDSTRING = 0x18F;
        public const int LB_FINDSTRINGEXACT = 0x1A2;
        public const int LB_GETANCHORINDEX = 0x19D;
        public const int LB_GETCARETINDEX = 0x19F;
        public const int LB_GETCOUNT = 0x18B;
        public const int LB_GETCURSEL = 0x188;
        public const int LB_GETHORIZONTALEXTENT = 0x193;
        public const int LB_GETITEMDATA = 0x199;
        public const int LB_GETITEMHEIGHT = 0x1A1;
        public const int LB_GETITEMRECT = 0x198;
        public const int LB_GETLOCALE = 0x1A6;
        public const int LB_GETSEL = 0x187;
        public const int LB_GETSELCOUNT = 0x190;
        public const int LB_GETSELITEMS = 0x191;
        public const int LB_GETTEXT = 0x189;
        public const int LB_GETTEXTLEN = 0x18A;
        public const int LB_GETTOPINDEX = 0x18E;
        public const int LB_INSERTSTRING = 0x181;
        public const int LB_MSGMAX = 0x1A8;
        public const int LB_OKAY = 0;
        public const int LB_RESETCONTENT = 0x184;
        public const int LB_SELECTSTRING = 0x18C;
        public const int LB_SELITEMRANGE = 0x19B;
        public const int LB_SELITEMRANGEEX = 0x183;
        public const int LB_SETANCHORINDEX = 0x19C;
        public const int LB_SETCARETINDEX = 0x19E;
        public const int LB_SETCOLUMNWIDTH = 0x195;
        public const int LB_SETCOUNT = 0x1A7;
        public const int LB_SETCURSEL = 0x186;
        public const int LB_SETHORIZONTALEXTENT = 0x194;
        public const int LB_SETITEMDATA = 0x19A;
        public const int LB_SETITEMHEIGHT = 0x1A0;
        public const int LB_SETLOCALE = 0x1A5;
        public const int LB_SETSEL = 0x185;
        public const int LB_SETTABSTOPS = 0x192;
        public const int LB_SETTOPINDEX = 0x197;
        public const int MAX_MONITORS = 4;
        public const int MA_ACTIVATE = 1;
        public const int MA_ACTIVATEANDEAT = 2;
        public const int MA_NOACTIVATE = 3;
        public const int MA_NOACTIVATEANDEAT = 4;
        public const int MB_ABORTRETRYIGNORE = 0x2;
        public const int MB_APPLMODAL = 0x0;
        public const int MB_DEFAULT_DESKTOP_ONLY = 0x20000;
        public const int MB_DEFBUTTON1 = 0x0;
        public const int MB_DEFBUTTON2 = 0x100;
        public const int MB_DEFBUTTON3 = 0x200;
        public const int MB_DEFMASK = 0xF00;
        public const int MB_ICONASTERISK = 0x40;
        public const int MB_ICONEXCLAMATION = 0x30;
        public const int MB_ICONHAND = 0x10;
        public const int MB_ICONINFORMATION = MB_ICONASTERISK;
        public const int MB_ICONMASK = 0xF0;
        public const int MB_ICONQUESTION = 0x20;
        public const int MB_ICONSTOP = MB_ICONHAND;
        public const int MB_MISCMASK = 0xC000;
        public const int MB_MODEMASK = 0x3000;
        public const int MB_NOFOCUS = 0x8000;
        public const int MB_OK = 0x0;
        public const int MB_OKCANCEL = 0x1;
        public const int MB_RETRYCANCEL = 0x5;
        public const int MB_SETFOREGROUND = 0x10000;
        public const int MB_SYSTEMMODAL = 0x1000;
        public const int MB_TASKMODAL = 0x2000;
        public const int MB_TYPEMASK = 0xF;
        public const int MB_YESNO = 0x4;
        public const int MB_YESNOCANCEL = 0x3;
        public const int MDIS_ALLCHILDSTYLES = 0x1;
        public const int MDITILE_HORIZONTAL = 0x1;
        public const int MDITILE_SKIPDISABLED = 0x2;
        public const int MDITILE_VERTICAL = 0x0;
        public const int MF_APPEND = 0x100;
        public const int MF_BITMAP = 0x4;
        public const int MF_BYCOMMAND = 0x0;
        public const int MF_BYPOSITION = 0x400;
        public const int MF_CALLBACKS = 0x8000000;
        public const int MF_CHANGE = 0x80;
        public const int MF_CHECKED = 0x8;
        public const int MF_CONV = 0x40000000;
        public const int MF_DELETE = 0x200;
        public const int MF_DISABLED = 0x2;
        public const int MF_ENABLED = 0x0;
        public const int MF_END = 0x80;
        public const int MF_ERRORS = 0x10000000;
        public const int MF_GRAYED = 0x1;
        public const int MF_HELP = 0x4000;
        public const int MF_HILITE = 0x80;
        public const int MF_HSZ_INFO = 0x1000000;
        public const int MF_INSERT = 0x0;
        public const int MF_LINKS = 0x20000000;
        public const int MF_MASK = unchecked((int)0xFF000000);
        public const int MF_MENUBARBREAK = 0x20;
        public const int MF_MENUBREAK = 0x40;
        public const int MF_MOUSESELECT = 0x8000;
        public const int MF_OWNERDRAW = 0x100;
        public const int MF_POPUP = 0x10;
        public const int MF_POSTMSGS = 0x4000000;
        public const int MF_REMOVE = 0x1000;
        public const int MF_SENDMSGS = 0x2000000;
        public const int MF_SEPARATOR = 0x800;
        public const int MF_STRING = 0x0;
        public const int MF_SYSMENU = 0x2000;
        public const int MF_UNCHECKED = 0x0;
        public const int MF_UNHILITE = 0x0;
        public const int MF_USECHECKBITMAPS = 0x200;
        public const int MH_CLEANUP = 4;
        public const int MH_CREATE = 1;
        public const int MH_DELETE = 3;
        public const int MH_KEEP = 2;
        public const int MK_CONTROL = 0x8;
        public const int MK_LBUTTON = 0x1;
        public const int MK_MBUTTON = 0x10;
        public const int MK_RBUTTON = 0x2;
        public const int MK_SHIFT = 0x4;
        public const int MOD_ALT = 0x1;
        public const int MOD_CONTROL = 0x2;
        public const int MOD_SHIFT = 0x4;
        public const int MOUSEEVENTF_ABSOLUTE = 0x8000;
        public const int MOUSEEVENTF_LEFTDOWN = 0x2;
        public const int MOUSEEVENTF_LEFTUP = 0x4;
        public const int MOUSEEVENTF_MIDDLEDOWN = 0x20;
        public const int MOUSEEVENTF_MIDDLEUP = 0x40;
        public const int MOUSEEVENTF_MOVE = 0x1;
        public const int MOUSEEVENTF_RIGHTDOWN = 0x8;
        public const int MOUSEEVENTF_RIGHTUP = 0x10;
        public const int MSGF_DDEMGR = 0x8001;
        public const int MSGF_DIALOGBOX = 0;
        public const int MSGF_MAINLOOP = 8;
        public const int MSGF_MAX = 8;
        public const int MSGF_MENU = 2;
        public const int MSGF_MESSAGEBOX = 1;
        public const int MSGF_MOVE = 3;
        public const int MSGF_NEXTWINDOW = 6;
        public const int MSGF_SCROLLBAR = 5;
        public const int MSGF_SIZE = 4;
        public const int MSGF_USER = 4096;
        public const int OBM_BTNCORNERS = 32758;
        public const int OBM_BTSIZE = 32761;
        public const int OBM_CHECK = 32760;
        public const int OBM_CHECKBOXES = 32759;
        public const int OBM_CLOSE = 32754;
        public const int OBM_COMBO = 32738;
        public const int OBM_DNARROW = 32752;
        public const int OBM_DNARROWD = 32742;
        public const int OBM_DNARROWI = 32736;
        public const int OBM_LFARROW = 32750;
        public const int OBM_LFARROWD = 32740;
        public const int OBM_LFARROWI = 32734;
        public const int OBM_MNARROW = 32739;
        public const int OBM_OLD_CLOSE = 32767;
        public const int OBM_OLD_DNARROW = 32764;
        public const int OBM_OLD_LFARROW = 32762;
        public const int OBM_OLD_REDUCE = 32757;
        public const int OBM_OLD_RESTORE = 32755;
        public const int OBM_OLD_RGARROW = 32763;
        public const int OBM_OLD_UPARROW = 32765;
        public const int OBM_OLD_ZOOM = 32756;
        public const int OBM_REDUCE = 32749;
        public const int OBM_REDUCED = 32746;
        public const int OBM_RESTORE = 32747;
        public const int OBM_RESTORED = 32744;
        public const int OBM_RGARROW = 32751;
        public const int OBM_RGARROWD = 32741;
        public const int OBM_RGARROWI = 32735;
        public const int OBM_SIZE = 32766;
        public const int OBM_UPARROW = 32753;
        public const int OBM_UPARROWD = 32743;
        public const int OBM_UPARROWI = 32737;
        public const int OBM_ZOOM = 32748;
        public const int OBM_ZOOMD = 32745;
        public const int OCR_CROSS = 32515;
        public const int OCR_IBEAM = 32513;
        public const int OCR_ICOCUR = 32647;
        public const int OCR_ICON = 32641;
        public const int OCR_NO = 32648;
        public const int OCR_NORMAL = 32512;
        public const int OCR_SIZE = 32640;
        public const int OCR_SIZEALL = 32646;
        public const int OCR_SIZENESW = 32643;
        public const int OCR_SIZENS = 32645;
        public const int OCR_SIZENWSE = 32642;
        public const int OCR_SIZEWE = 32644;
        public const int OCR_UP = 32516;
        public const int OCR_WAIT = 32514;
        public const int ODA_DRAWENTIRE = 0x1;
        public const int ODA_FOCUS = 0x4;
        public const int ODA_SELECT = 0x2;
        public const int ODS_CHECKED = 0x8;
        public const int ODS_DISABLED = 0x4;
        public const int ODS_FOCUS = 0x10;
        public const int ODS_GRAYED = 0x2;
        public const int ODS_SELECTED = 0x1;
        public const int ODT_BUTTON = 4;
        public const int ODT_COMBOBOX = 3;
        public const int ODT_LISTBOX = 2;
        public const int ODT_MENU = 1;
        public const int OIC_BANG = 32515;
        public const int OIC_HAND = 32513;
        public const int OIC_NOTE = 32516;
        public const int OIC_QUES = 32514;
        public const int OIC_SAMPLE = 32512;
        public const int ORD_LANGDRIVER = 1;
        public const int PAGE_EXECUTE = 0x10;
        public const int PAGE_EXECUTE_READ = 0x20;
        public const int PAGE_EXECUTE_READWRITE = 0x40;
        public const int PAGE_EXECUTE_WRITECOPY = 0x80;
        public const int PAGE_GUARD = 0x100;
        public const int PAGE_NOACCESS = 0x1;
        public const int PAGE_NOCACHE = 0x200;
        public const int PAGE_READONLY = 0x2;
        public const int PAGE_READWRITE = 0x4;
        public const int PAGE_WRITECOPY = 0x8;
        public const int PM_NOREMOVE = 0x0;
        public const int PM_NOYIELD = 0x2;
        public const int PM_REMOVE = 0x1;
        public const int PWR_CRITICALRESUME = 3;
        public const int PWR_FAIL = (-1);
        public const int PWR_OK = 1;
        public const int PWR_SUSPENDREQUEST = 1;
        public const int PWR_SUSPENDRESUME = 2;
        public const int QID_SYNC = 0xFFFF;
        public const int QS_ALLEVENTS = (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY);
        public const int QS_ALLINPUT = (QS_SENDMESSAGE | QS_PAINT | QS_TIMER | QS_POSTMESSAGE | QS_MOUSEBUTTON | QS_MOUSEMOVE | QS_HOTKEY | QS_KEY);
        public const int QS_HOTKEY = 0x80;
        public const int QS_INPUT = (QS_MOUSE | QS_KEY);
        public const int QS_KEY = 0x1;
        public const int QS_MOUSE = (QS_MOUSEMOVE | QS_MOUSEBUTTON);
        public const int QS_MOUSEBUTTON = 0x4;
        public const int QS_MOUSEMOVE = 0x2;
        public const int QS_PAINT = 0x20;
        public const int QS_POSTMESSAGE = 0x8;
        public const int QS_SENDMESSAGE = 0x40;
        public const int QS_TIMER = 0x10;
        public const int RDW_ALLCHILDREN = 0x80;
        public const int RDW_ERASE = 0x4;
        public const int RDW_ERASENOW = 0x200;
        public const int RDW_FRAME = 0x400;
        public const int RDW_INTERNALPAINT = 0x2;
        public const int RDW_INVALIDATE = 0x1;
        public const int RDW_NOCHILDREN = 0x40;
        public const int RDW_NOERASE = 0x20;
        public const int RDW_NOFRAME = 0x800;
        public const int RDW_NOINTERNALPAINT = 0x10;
        public const int RDW_UPDATENOW = 0x100;
        public const int RDW_VALIDATE = 0x8;
        public const int READ = 0;
        public const int READ_WRITE = 2;
        public const int SBM_ENABLE_ARROWS = 0xE4;
        public const int SBM_GETPOS = 0xE1;
        public const int SBM_GETRANGE = 0xE3;
        public const int SBM_SETPOS = 0xE0;
        public const int SBM_SETRANGE = 0xE2;
        public const int SBM_SETRANGEREDRAW = 0xE6;
        public const int SBS_BOTTOMALIGN = 0x4;
        public const int SBS_HORZ = 0x0;
        public const int SBS_LEFTALIGN = 0x2;
        public const int SBS_RIGHTALIGN = 0x4;
        public const int SBS_SIZEBOX = 0x8;
        public const int SBS_SIZEBOXBOTTOMRIGHTALIGN = 0x4;
        public const int SBS_SIZEBOXTOPLEFTALIGN = 0x2;
        public const int SBS_TOPALIGN = 0x2;
        public const int SBS_VERT = 0x1;
        public const int SB_BOTH = 3;
        public const int SB_BOTTOM = 7;
        public const int SB_CTL = 2;
        public const int SB_ENDSCROLL = 8;
        public const int SB_HORZ = 0;
        public const int SB_LEFT = 6;
        public const int SB_LINEDOWN = 1;
        public const int SB_LINELEFT = 0;
        public const int SB_LINERIGHT = 1;
        public const int SB_LINEUP = 0;
        public const int SB_PAGEDOWN = 3;
        public const int SB_PAGELEFT = 2;
        public const int SB_PAGERIGHT = 3;
        public const int SB_PAGEUP = 2;
        public const int SB_RIGHT = 7;
        public const int SB_THUMBPOSITION = 4;
        public const int SB_THUMBTRACK = 5;
        public const int SB_TOP = 6;
        public const int SB_VERT = 1;
        public const int SC_ARRANGE = 0xF110;
        public const int SC_CLOSE = 0xF060;
        public const int SC_HOTKEY = 0xF150;
        public const int SC_HSCROLL = 0xF080;
        public const int SC_ICON = SC_MINIMIZE;
        public const int SC_KEYMENU = 0xF100;
        public const int SC_MAXIMIZE = 0xF030;
        public const int SC_MINIMIZE = 0xF020;
        public const int SC_MOUSEMENU = 0xF090;
        public const int SC_MOVE = 0xF010;
        public const int SC_NEXTWINDOW = 0xF040;
        public const int SC_PREVWINDOW = 0xF050;
        public const int SC_RESTORE = 0xF120;
        public const int SC_SCREENSAVE = 0xF140;
        public const int SC_SIZE = 0xF000;
        public const int SC_TASKLIST = 0xF130;
        public const int SC_VSCROLL = 0xF070;
        public const int SC_ZOOM = SC_MAXIMIZE;
        public const int SHOW_FULLSCREEN = 3;
        public const int SHOW_ICONWINDOW = 2;
        public const int SHOW_OPENNOACTIVATE = 4;
        public const int SHOW_OPENWINDOW = 1;
        public const int SIZEFULLSCREEN = SIZE_MAXIMIZED;
        public const int SIZEICONIC = SIZE_MINIMIZED;
        public const int SIZENORMAL = SIZE_RESTORED;
        public const int SIZEZOOMHIDE = SIZE_MAXHIDE;
        public const int SIZEZOOMSHOW = SIZE_MAXSHOW;
        public const int SIZE_MAXHIDE = 4;
        public const int SIZE_MAXIMIZED = 2;
        public const int SIZE_MAXSHOW = 3;
        public const int SIZE_MINIMIZED = 1;
        public const int SIZE_RESTORED = 0;
        public const int SMTO_ABORTIFHUNG = 0x2;
        public const int SMTO_BLOCK = 0x1;
        public const int SMTO_NORMAL = 0x0;
        public const int SM_CMETRICS = 44;
        public const int SM_CMOUSEBUTTONS = 43;
        public const int SM_CXBORDER = 5;
        public const int SM_CXCURSOR = 13;
        public const int SM_CXDLGFRAME = 7;
        public const int SM_CXDOUBLECLK = 36;
        public const int SM_CXFIXEDFRAME = SM_CXDLGFRAME;
        public const int SM_CXFRAME = 32;
        public const int SM_CXFULLSCREEN = 16;
        public const int SM_CXHSCROLL = 21;
        public const int SM_CXHTHUMB = 10;
        public const int SM_CXICON = 11;
        public const int SM_CXICONSPACING = 38;
        public const int SM_CXMIN = 28;
        public const int SM_CXMINTRACK = 34;
        public const int SM_CXSCREEN = 0;
        public const int SM_CXSIZE = 30;
        public const int SM_CXSIZEFRAME = SM_CXFRAME;
        public const int SM_CXVSCROLL = 2;
        public const int SM_CYBORDER = 6;
        public const int SM_CYCAPTION = 4;
        public const int SM_CYCURSOR = 14;
        public const int SM_CYDLGFRAME = 8;
        public const int SM_CYDOUBLECLK = 37;
        public const int SM_CYFIXEDFRAME = SM_CYDLGFRAME;
        public const int SM_CYFRAME = 33;
        public const int SM_CYFULLSCREEN = 17;
        public const int SM_CYHSCROLL = 3;
        public const int SM_CYICON = 12;
        public const int SM_CYICONSPACING = 39;
        public const int SM_CYKANJIWINDOW = 18;
        public const int SM_CYMENU = 15;
        public const int SM_CYMIN = 29;
        public const int SM_CYMINTRACK = 35;
        public const int SM_CYSCREEN = 1;
        public const int SM_CYSIZE = 31;
        public const int SM_CYSIZEFRAME = SM_CYFRAME;
        public const int SM_CYVSCROLL = 20;
        public const int SM_CYVTHUMB = 9;
        public const int SM_DBCSENABLED = 42;
        public const int SM_DEBUG = 22;
        public const int SM_MENUDROPALIGNMENT = 40;
        public const int SM_MOUSEPRESENT = 19;
        public const int SM_PENWINDOWS = 41;
        public const int SM_RESERVED1 = 24;
        public const int SM_RESERVED2 = 25;
        public const int SM_RESERVED3 = 26;
        public const int SM_RESERVED4 = 27;
        public const int SM_SWAPBUTTON = 23;
        public const int SPIF_SENDWININICHANGE = 0x2;
        public const int SPIF_UPDATEINIFILE = 0x1;
        public const int SPI_GETACCESSTIMEOUT = 60;
        public const int SPI_GETANIMATION = 72;
        public const int SPI_GETBEEP = 1;
        public const int SPI_GETBORDER = 5;
        public const int SPI_GETDEFAULTINPUTLANG = 89;
        public const int SPI_GETDRAGFULLWINDOWS = 38;
        public const int SPI_GETFASTTASKSWITCH = 35;
        public const int SPI_GETFILTERKEYS = 50;
        public const int SPI_GETFONTSMOOTHING = 74;
        public const int SPI_GETGRIDGRANULARITY = 18;
        public const int SPI_GETHIGHCONTRAST = 66;
        public const int SPI_GETICONMETRICS = 45;
        public const int SPI_GETICONTITLELOGFONT = 31;
        public const int SPI_GETICONTITLEWRAP = 25;
        public const int SPI_GETKEYBOARDDELAY = 22;
        public const int SPI_GETKEYBOARDPREF = 68;
        public const int SPI_GETKEYBOARDSPEED = 10;
        public const int SPI_GETLOWPOWERACTIVE = 83;
        public const int SPI_GETLOWPOWERTIMEOUT = 79;
        public const int SPI_GETMENUDROPALIGNMENT = 27;
        public const int SPI_GETMINIMIZEDMETRICS = 43;
        public const int SPI_GETMOUSE = 3;
        public const int SPI_GETMOUSEKEYS = 54;
        public const int SPI_GETMOUSETRAILS = 94;
        public const int SPI_GETNONCLIENTMETRICS = 41;
        public const int SPI_GETPOWEROFFACTIVE = 84;
        public const int SPI_GETPOWEROFFTIMEOUT = 80;
        public const int SPI_GETSCREENREADER = 70;
        public const int SPI_GETSCREENSAVEACTIVE = 16;
        public const int SPI_GETSCREENSAVETIMEOUT = 14;
        public const int SPI_GETSERIALKEYS = 62;
        public const int SPI_GETSHOWSOUNDS = 56;
        public const int SPI_GETSOUNDSENTRY = 64;
        public const int SPI_GETSTICKYKEYS = 58;
        public const int SPI_GETTOGGLEKEYS = 52;
        public const int SPI_GETWINDOWSEXTENSION = 92;
        public const int SPI_GETWORKAREA = 48;
        public const int SPI_ICONHORIZONTALSPACING = 13;
        public const int SPI_ICONVERTICALSPACING = 24;
        public const int SPI_LANGDRIVER = 12;
        public const int SPI_SCREENSAVERRUNNING = 97;
        public const int SPI_SETACCESSTIMEOUT = 61;
        public const int SPI_SETANIMATION = 73;
        public const int SPI_SETBEEP = 2;
        public const int SPI_SETBORDER = 6;
        public const int SPI_SETCURSORS = 87;
        public const int SPI_SETDEFAULTINPUTLANG = 90;
        public const int SPI_SETDESKPATTERN = 21;
        public const int SPI_SETDESKWALLPAPER = 20;
        public const int SPI_SETDOUBLECLICKTIME = 32;
        public const int SPI_SETDOUBLECLKHEIGHT = 30;
        public const int SPI_SETDOUBLECLKWIDTH = 29;
        public const int SPI_SETDRAGFULLWINDOWS = 37;
        public const int SPI_SETDRAGHEIGHT = 77;
        public const int SPI_SETDRAGWIDTH = 76;
        public const int SPI_SETFASTTASKSWITCH = 36;
        public const int SPI_SETFILTERKEYS = 51;
        public const int SPI_SETFONTSMOOTHING = 75;
        public const int SPI_SETGRIDGRANULARITY = 19;
        public const int SPI_SETHANDHELD = 78;
        public const int SPI_SETHIGHCONTRAST = 67;
        public const int SPI_SETICONMETRICS = 46;
        public const int SPI_SETICONS = 88;
        public const int SPI_SETICONTITLELOGFONT = 34;
        public const int SPI_SETICONTITLEWRAP = 26;
        public const int SPI_SETKEYBOARDDELAY = 23;
        public const int SPI_SETKEYBOARDPREF = 69;
        public const int SPI_SETKEYBOARDSPEED = 11;
        public const int SPI_SETLANGTOGGLE = 91;
        public const int SPI_SETLOWPOWERACTIVE = 85;
        public const int SPI_SETLOWPOWERTIMEOUT = 81;
        public const int SPI_SETMENUDROPALIGNMENT = 28;
        public const int SPI_SETMINIMIZEDMETRICS = 44;
        public const int SPI_SETMOUSE = 4;
        public const int SPI_SETMOUSEBUTTONSWAP = 33;
        public const int SPI_SETMOUSEKEYS = 55;
        public const int SPI_SETMOUSETRAILS = 93;
        public const int SPI_SETNONCLIENTMETRICS = 42;
        public const int SPI_SETPENWINDOWS = 49;
        public const int SPI_SETPOWEROFFACTIVE = 86;
        public const int SPI_SETPOWEROFFTIMEOUT = 82;
        public const int SPI_SETSCREENREADER = 71;
        public const int SPI_SETSCREENSAVEACTIVE = 17;
        public const int SPI_SETSCREENSAVETIMEOUT = 15;
        public const int SPI_SETSERIALKEYS = 63;
        public const int SPI_SETSHOWSOUNDS = 57;
        public const int SPI_SETSOUNDSENTRY = 65;
        public const int SPI_SETSTICKYKEYS = 59;
        public const int SPI_SETTOGGLEKEYS = 53;
        public const int SPI_SETWORKAREA = 47;
        public const short SQL_HANDLE_ENV = 1;
        public const int SQL_ATTR_ODBC_VERSION = 200;
        public const int SQL_OV_ODBC3 = 3;
        public const int SQL_IS_INTEGER = -6;
        public const short SQL_FETCH_NEXT = 1;
        public const short SQL_FETCH_FIRST = 2;
        public const short SQL_FETCH_LAST = 3;
        public const short SQL_FETCH_PRIOR = 4;
        public const short SQL_NO_DATA = 100;
        public const int SS_BLACKFRAME = 0x7;
        public const int SS_BLACKRECT = 0x4;
        public const int SS_CENTER = 0x1;
        public const int SS_GRAYFRAME = 0x8;
        public const int SS_GRAYRECT = 0x5;
        public const int SS_ICON = 0x3;
        public const int SS_LEFT = 0x0;
        public const int SS_LEFTNOWORDWRAP = 0xC;
        public const int SS_NOPREFIX = 0x80;
        public const int SS_RIGHT = 0x2;
        public const int SS_SIMPLE = 0xB;
        public const int SS_USERITEM = 0xA;
        public const int SS_WHITEFRAME = 0x9;
        public const int SS_WHITERECT = 0x6;
        public const int STM_GETICON = 0x171;
        public const int STM_MSGMAX = 0x172;
        public const int STM_SETICON = 0x170;
        public const int ST_ADVISE = 0x2;
        public const int ST_BEGINSWP = 0;
        public const int ST_BLOCKED = 0x8;
        public const int ST_BLOCKNEXT = 0x80;
        public const int ST_CLIENT = 0x10;
        public const int ST_CONNECTED = 0x1;
        public const int ST_ENDSWP = 1;
        public const int ST_INLIST = 0x40;
        public const int ST_ISLOCAL = 0x4;
        public const int ST_ISSELF = 0x100;
        public const int ST_TERMINATED = 0x20;
        public const int SWP_DRAWFRAME = SWP_FRAMECHANGED;
        public const int SWP_FRAMECHANGED = 0x20;
        public const int SWP_HIDEWINDOW = 0x80;
        public const int SWP_NOACTIVATE = 0x10;
        public const int SWP_NOCOPYBITS = 0x100;
        public const int SWP_NOMOVE = 0x2;
        public const int SWP_NOOWNERZORDER = 0x200;
        public const int SWP_NOREDRAW = 0x8;
        public const int SWP_NOREPOSITION = SWP_NOOWNERZORDER;
        public const int SWP_NOSIZE = 0x1;
        public const int SWP_NOZORDER = 0x4;
        public const int SWP_SHOWWINDOW = 0x40;
        public const int SW_ERASE = 0x4;
        public const int SW_HIDE = 0;
        public const int SW_INVALIDATE = 0x2;
        public const int SW_MAX = 10;
        public const int SW_MAXIMIZE = 3;
        public const int SW_MINIMIZE = 6;
        public const int SW_NORMAL = 1;
        public const int SW_OTHERUNZOOM = 4;
        public const int SW_OTHERZOOM = 2;
        public const int SW_PARENTCLOSING = 1;
        public const int SW_PARENTOPENING = 3;
        public const int SW_RESTORE = 9;
        public const int SW_SCROLLCHILDREN = 0x1;
        public const int SW_SHOW = 5;
        public const int SW_SHOWDEFAULT = 10;
        public const int SW_SHOWMAXIMIZED = 3;
        public const int SW_SHOWMINIMIZED = 2;
        public const int SW_SHOWMINNOACTIVE = 7;
        public const int SW_SHOWNA = 8;
        public const int SW_SHOWNOACTIVATE = 4;
        public const int SW_SHOWNORMAL = 1;
        public const int TIMEOUT_ASYNC = 0xFFFF;
        public const int TPM_CENTERALIGN = 0x4;
        public const int TPM_LEFTALIGN = 0x0;
        public const int TPM_LEFTBUTTON = 0x0;
        public const int TPM_RIGHTALIGN = 0x8;
        public const int TPM_RIGHTBUTTON = 0x2;
        public const int VK_ADD = 0x6B;
        public const int VK_ATTN = 0xF6;
        public const int VK_BACK = 0x8;
        public const int VK_CANCEL = 0x3;
        public const int VK_CAPITAL = 0x14;
        public const int VK_CLEAR = 0xC;
        public const int VK_CONTROL = 0x11;
        public const int VK_CRSEL = 0xF7;
        public const int VK_DECIMAL = 0x6E;
        public const int VK_DELETE = 0x2E;
        public const int VK_DIVIDE = 0x6F;
        public const int VK_DOWN = 0x28;
        public const int VK_END = 0x23;
        public const int VK_EREOF = 0xF9;
        public const int VK_ESCAPE = 0x1B;
        public const int VK_EXECUTE = 0x2B;
        public const int VK_EXSEL = 0xF8;
        public const int VK_F1 = 0x70;
        public const int VK_F10 = 0x79;
        public const int VK_F11 = 0x7A;
        public const int VK_F12 = 0x7B;
        public const int VK_F13 = 0x7C;
        public const int VK_F14 = 0x7D;
        public const int VK_F15 = 0x7E;
        public const int VK_F16 = 0x7F;
        public const int VK_F17 = 0x80;
        public const int VK_F18 = 0x81;
        public const int VK_F19 = 0x82;
        public const int VK_F2 = 0x71;
        public const int VK_F20 = 0x83;
        public const int VK_F21 = 0x84;
        public const int VK_F22 = 0x85;
        public const int VK_F23 = 0x86;
        public const int VK_F24 = 0x87;
        public const int VK_F3 = 0x72;
        public const int VK_F4 = 0x73;
        public const int VK_F5 = 0x74;
        public const int VK_F6 = 0x75;
        public const int VK_F7 = 0x76;
        public const int VK_F8 = 0x77;
        public const int VK_F9 = 0x78;
        public const int VK_HELP = 0x2F;
        public const int VK_HOME = 0x24;
        public const int VK_INSERT = 0x2D;
        public const int VK_LBUTTON = 0x1;
        public const int VK_LCONTROL = 0xA2;
        public const int VK_LEFT = 0x25;
        public const int VK_LMENU = 0xA4;
        public const int VK_LSHIFT = 0xA0;
        public const int VK_MBUTTON = 0x4;
        public const int VK_MENU = 0x12;
        public const int VK_MULTIPLY = 0x6A;
        public const int VK_NEXT = 0x22;
        public const int VK_NONAME = 0xFC;
        public const int VK_NUMLOCK = 0x90;
        public const int VK_NUMPAD0 = 0x60;
        public const int VK_NUMPAD1 = 0x61;
        public const int VK_NUMPAD2 = 0x62;
        public const int VK_NUMPAD3 = 0x63;
        public const int VK_NUMPAD4 = 0x64;
        public const int VK_NUMPAD5 = 0x65;
        public const int VK_NUMPAD6 = 0x66;
        public const int VK_NUMPAD7 = 0x67;
        public const int VK_NUMPAD8 = 0x68;
        public const int VK_NUMPAD9 = 0x69;
        public const int VK_OEM_CLEAR = 0xFE;
        public const int VK_PA1 = 0xFD;
        public const int VK_PAUSE = 0x13;
        public const int VK_PLAY = 0xFA;
        public const int VK_PRINT = 0x2A;
        public const int VK_PRIOR = 0x21;
        public const int VK_RBUTTON = 0x2;
        public const int VK_RCONTROL = 0xA3;
        public const int VK_RETURN = 0xD;
        public const int VK_RIGHT = 0x27;
        public const int VK_RMENU = 0xA5;
        public const int VK_RSHIFT = 0xA1;
        public const int VK_SCROLL = 0x91;
        public const int VK_SELECT = 0x29;
        public const int VK_SEPARATOR = 0x6C;
        public const int VK_SHIFT = 0x10;
        public const int VK_SNAPSHOT = 0x2C;
        public const int VK_SPACE = 0x20;
        public const int VK_SUBTRACT = 0x6D;
        public const int VK_TAB = 0x9;
        public const int VK_UP = 0x26;
        public const int VK_ZOOM = 0xFB;
        public const int WA_ACTIVE = 1;
        public const int WA_CLICKACTIVE = 2;
        public const int WA_INACTIVE = 0;
        public const int WB_ISDELIMITER = 2;
        public const int WB_LEFT = 0;
        public const int WB_RIGHT = 1;
        public const int WC_DIALOG = 8002;
        public const int WH_CALLWNDPROC = 4;
        public const int WH_CBT = 5;
        public const int WH_DEBUG = 9;
        public const int WH_FOREGROUNDIDLE = 11;
        public const int WH_GETMESSAGE = 3;
        public const int WH_HARDWARE = 8;
        public const int WH_JOURNALPLAYBACK = 1;
        public const int WH_JOURNALRECORD = 0;
        public const int WH_KEYBOARD = 2;
        public const int WH_MAX = 11;
        public const int WH_MIN = (-1);
        public const int WH_MOUSE = 7;
        public const int WH_MSGFILTER = (-1);
        public const int WH_SHELL = 10;
        public const int WH_SYSMSGFILTER = 6;
        public const int WINSTA_ACCESSCLIPBOARD = 0x4;
        public const int WINSTA_ACCESSPUBLICATOMS = 0x20;
        public const int WINSTA_CREATEDESKTOP = 0x8;
        public const int WINSTA_ENUMDESKTOPS = 0x1;
        public const int WINSTA_ENUMERATE = 0x100;
        public const int WINSTA_EXITWINDOWS = 0x40;
        public const int WINSTA_READATTRIBUTES = 0x2;
        public const int WINSTA_READSCREEN = 0x200;
        public const int WINSTA_WRITEATTRIBUTES = 0x10;
        public const int WM_ACTIVATE = 0x6;
        public const int WM_ACTIVATEAPP = 0x1C;
        public const int WM_ASKCBFORMATNAME = 0x30C;
        public const int WM_CANCELJOURNAL = 0x4B;
        public const int WM_CANCELMODE = 0x1F;
        public const int WM_CHANGECBCHAIN = 0x30D;
        public const int WM_CHAR = 0x102;
        public const int WM_CHARTOITEM = 0x2F;
        public const int WM_CHILDACTIVATE = 0x22;
        public const int WM_CLEAR = 0x303;
        public const int WM_CLOSE = 0x10;
        public const int WM_COMMAND = 0x111;
        public const int WM_COMMNOTIFY = 0x44;
        public const int WM_COMPACTING = 0x41;
        public const int WM_COMPAREITEM = 0x39;
        public const int WM_COPY = 0x301;
        public const int WM_COPYDATA = 0x4A;
        public const int WM_CREATE = 0x1;
        public const int WM_CTLCOLORBTN = 0x135;
        public const int WM_CTLCOLORDLG = 0x136;
        public const int WM_CTLCOLOREDIT = 0x133;
        public const int WM_CTLCOLORLISTBOX = 0x134;
        public const int WM_CTLCOLORMSGBOX = 0x132;
        public const int WM_CTLCOLORSCROLLBAR = 0x137;
        public const int WM_CTLCOLORSTATIC = 0x138;
        public const int WM_CUT = 0x300;
        public const int WM_DDE_ACK = (WM_DDE_FIRST + 4);
        public const int WM_DDE_ADVISE = (WM_DDE_FIRST + 2);
        public const int WM_DDE_DATA = (WM_DDE_FIRST + 5);
        public const int WM_DDE_EXECUTE = (WM_DDE_FIRST + 8);
        public const int WM_DDE_FIRST = 0x3E0;
        public const int WM_DDE_INITIATE = (WM_DDE_FIRST);
        public const int WM_DDE_LAST = (WM_DDE_FIRST + 8);
        public const int WM_DDE_POKE = (WM_DDE_FIRST + 7);
        public const int WM_DDE_REQUEST = (WM_DDE_FIRST + 6);
        public const int WM_DDE_TERMINATE = (WM_DDE_FIRST + 1);
        public const int WM_DDE_UNADVISE = (WM_DDE_FIRST + 3);
        public const int WM_DEADCHAR = 0x103;
        public const int WM_DELETEITEM = 0x2D;
        public const int WM_DESTROY = 0x2;
        public const int WM_DESTROYCLIPBOARD = 0x307;
        public const int WM_DEVMODECHANGE = 0x1B;
        public const int WM_DRAWCLIPBOARD = 0x308;
        public const int WM_DRAWITEM = 0x2B;
        public const int WM_DROPFILES = 0x233;
        public const int WM_ENABLE = 0xA;
        public const int WM_ENDSESSION = 0x16;
        public const int WM_ENTERIDLE = 0x121;
        public const int WM_ENTERMENULOOP = 0x211;
        public const int WM_ERASEBKGND = 0x14;
        public const int WM_EXITMENULOOP = 0x212;
        public const int WM_FONTCHANGE = 0x1D;
        public const int WM_GETDLGCODE = 0x87;
        public const int WM_GETFONT = 0x31;
        public const int WM_GETHOTKEY = 0x33;
        public const int WM_GETMINMAXINFO = 0x24;
        public const int WM_GETTEXT = 0xD;
        public const int WM_GETTEXTLENGTH = 0xE;
        public const int WM_HOTKEY = 0x312;
        public const int WM_HSCROLL = 0x114;
        public const int WM_HSCROLLCLIPBOARD = 0x30E;
        public const int WM_ICONERASEBKGND = 0x27;
        public const int WM_INITDIALOG = 0x110;
        public const int WM_INITMENU = 0x116;
        public const int WM_INITMENUPOPUP = 0x117;
        public const int WM_KEYDOWN = 0x100;
        public const int WM_KEYFIRST = 0x100;
        public const int WM_KEYLAST = 0x108;
        public const int WM_KEYUP = 0x101;
        public const int WM_KILLFOCUS = 0x8;
        public const int WM_LBUTTONDBLCLK = 0x203;
        public const int WM_LBUTTONDOWN = 0x201;
        public const int WM_LBUTTONUP = 0x202;
        public const int WM_MBUTTONDBLCLK = 0x209;
        public const int WM_MBUTTONDOWN = 0x207;
        public const int WM_MBUTTONUP = 0x208;
        public const int WM_MDIACTIVATE = 0x222;
        public const int WM_MDICASCADE = 0x227;
        public const int WM_MDICREATE = 0x220;
        public const int WM_MDIDESTROY = 0x221;
        public const int WM_MDIGETACTIVE = 0x229;
        public const int WM_MDIICONARRANGE = 0x228;
        public const int WM_MDIMAXIMIZE = 0x225;
        public const int WM_MDINEXT = 0x224;
        public const int WM_MDIREFRESHMENU = 0x234;
        public const int WM_MDIRESTORE = 0x223;
        public const int WM_MDISETMENU = 0x230;
        public const int WM_MDITILE = 0x226;
        public const int WM_MEASUREITEM = 0x2C;
        public const int WM_MENUCHAR = 0x120;
        public const int WM_MENUSELECT = 0x11F;
        public const int WM_MOUSEACTIVATE = 0x21;
        public const int WM_MOUSEFIRST = 0x200;
        public const int WM_MOUSELAST = 0x209;
        public const int WM_MOUSEMOVE = 0x200;
        public const int WM_MOVE = 0x3;
        public const int WM_NCACTIVATE = 0x86;
        public const int WM_NCCALCSIZE = 0x83;
        public const int WM_NCCREATE = 0x81;
        public const int WM_NCDESTROY = 0x82;
        public const int WM_NCHITTEST = 0x84;
        public const int WM_NCLBUTTONDBLCLK = 0xA3;
        public const int WM_NCLBUTTONDOWN = 0xA1;
        public const int WM_NCLBUTTONUP = 0xA2;
        public const int WM_NCMBUTTONDBLCLK = 0xA9;
        public const int WM_NCMBUTTONDOWN = 0xA7;
        public const int WM_NCMBUTTONUP = 0xA8;
        public const int WM_NCMOUSEMOVE = 0xA0;
        public const int WM_NCPAINT = 0x85;
        public const int WM_NCRBUTTONDBLCLK = 0xA6;
        public const int WM_NCRBUTTONDOWN = 0xA4;
        public const int WM_NCRBUTTONUP = 0xA5;
        public const int WM_NEXTDLGCTL = 0x28;
        public const int WM_NULL = 0x0;
        public const int WM_OTHERWINDOWCREATED = 0x42;
        public const int WM_OTHERWINDOWDESTROYED = 0x43;
        public const int WM_PAINT = 0xF;
        public const int WM_PAINTCLIPBOARD = 0x309;
        public const int WM_PAINTICON = 0x26;
        public const int WM_PALETTECHANGED = 0x311;
        public const int WM_PALETTEISCHANGING = 0x310;
        public const int WM_PARENTNOTIFY = 0x210;
        public const int WM_PASTE = 0x302;
        public const int WM_PENWINFIRST = 0x380;
        public const int WM_PENWINLAST = 0x38F;
        public const int WM_POWER = 0x48;
        public const int WM_QUERYDRAGICON = 0x37;
        public const int WM_QUERYENDSESSION = 0x11;
        public const int WM_QUERYNEWPALETTE = 0x30F;
        public const int WM_QUERYOPEN = 0x13;
        public const int WM_QUEUESYNC = 0x23;
        public const int WM_QUIT = 0x12;
        public const int WM_RBUTTONDBLCLK = 0x206;
        public const int WM_RBUTTONDOWN = 0x204;
        public const int WM_RBUTTONUP = 0x205;
        public const int WM_RENDERALLFORMATS = 0x306;
        public const int WM_RENDERFORMAT = 0x305;
        public const int WM_SETCURSOR = 0x20;
        public const int WM_SETFOCUS = 0x7;
        public const int WM_SETFONT = 0x30;
        public const int WM_SETHOTKEY = 0x32;
        public const int WM_SETREDRAW = 0xB;
        public const int WM_SETTEXT = 0xC;
        public const int WM_SHOWWINDOW = 0x18;
        public const int WM_SIZE = 0x5;
        public const int WM_SIZECLIPBOARD = 0x30B;
        public const int WM_SPOOLERSTATUS = 0x2A;
        public const int WM_SYSCHAR = 0x106;
        public const int WM_SYSCOLORCHANGE = 0x15;
        public const int WM_SYSCOMMAND = 0x112;
        public const int WM_SYSDEADCHAR = 0x107;
        public const int WM_SYSKEYDOWN = 0x104;
        public const int WM_SYSKEYUP = 0x105;
        public const int WM_TIMECHANGE = 0x1E;
        public const int WM_TIMER = 0x113;
        public const int WM_UNDO = 0x304;
        public const int WM_USER = 0x400;
        public const int WM_VKEYTOITEM = 0x2E;
        public const int WM_VSCROLL = 0x115;
        public const int WM_VSCROLLCLIPBOARD = 0x30A;
        public const int WM_WINDOWPOSCHANGED = 0x47;
        public const int WM_WINDOWPOSCHANGING = 0x46;
        public const int WM_WININICHANGE = 0x1A;
        public const int WPF_RESTORETOMAXIMIZED = 0x2;
        public const int WPF_SETMINPOSITION = 0x1;
        public const int WRITE = 1;
        public const int WS_BORDER = 0x800000;
        public const int WS_CAPTION = 0xC00000;
        public const int WS_CHILD = 0x40000000;
        public const int WS_CHILDWINDOW = (WS_CHILD);
        public const int WS_CLIPCHILDREN = 0x2000000;
        public const int WS_CLIPSIBLINGS = 0x4000000;
        public const int WS_DISABLED = 0x8000000;
        public const int WS_DLGFRAME = 0x400000;
        public const int WS_EX_ACCEPTFILES = 0x10;
        public const int WS_EX_DLGMODALFRAME = 0x1;
        public const int WS_EX_NOPARENTNOTIFY = 0x4;
        public const int WS_EX_TOPMOST = 0x8;
        public const int WS_EX_TRANSPARENT = 0x20;
        public const int WS_EX_MDICHILD = 0x40;
        public const int WS_EX_TOOLWINDOW = 0x80;
        public const int WS_EX_WINDOWEDGE = 0x100;
        public const int WS_EX_CLIENTEDGE = 0x200;
        public const int WS_EX_CONTEXTHELP = 0x400;
        public const int WS_EX_RIGHT = 0x1000;
        public const int WS_EX_RTLREADING = 0x2000;
        public const int WS_EX_LEFTSCROLLBAR = 0x4000;
        public const int WS_EX_CONTROLPARENT = 0x10000;
        public const int WS_EX_STATICEDGE = 0x20000;
        public const int WS_EX_APPWINDOW = 0x40000;
        public const int WS_EX_LAYERED = 0x80000;
        public const int WS_GROUP = 0x20000;
        public const int WS_HSCROLL = 0x100000;
        public const int WS_ICONIC = WS_MINIMIZE;
        public const int WS_MAXIMIZE = 0x1000000;
        public const int WS_MAXIMIZEBOX = 0x10000;
        public const int WS_MINIMIZE = 0x20000000;
        public const int WS_MINIMIZEBOX = 0x20000;
        public const int WS_OVERLAPPED = 0x0;
        public const int WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX);
        public const int WS_POPUP = unchecked((int)0x80000000);
        public const int WS_POPUPWINDOW = (WS_POPUP | WS_BORDER | WS_SYSMENU);
        public const int WS_SIZEBOX = WS_THICKFRAME;
        public const int WS_SYSMENU = 0x80000;
        public const int WS_TABSTOP = 0x10000;
        public const int WS_THICKFRAME = 0x40000;
        public const int WS_TILED = WS_OVERLAPPED;
        public const int WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW;
        public const int WS_VISIBLE = 0x10000000;
        public const int WS_VSCROLL = 0x200000;
        public const int WVR_ALIGNBOTTOM = 0x40;
        public const int WVR_ALIGNLEFT = 0x20;
        public const int WVR_ALIGNRIGHT = 0x80;
        public const int WVR_ALIGNTOP = 0x10;
        public const int WVR_HREDRAW = 0x100;
        public const int WVR_REDRAW = (WVR_HREDRAW | WVR_VREDRAW);
        public const int WVR_VALIDRECTS = 0x400;
        public const int WVR_VREDRAW = 0x200;
        public const int XCLASS_BOOL = 0x1000;
        public const int XCLASS_DATA = 0x2000;
        public const int XCLASS_FLAGS = 0x4000;
        public const int XCLASS_MASK = 0xFC00;
        public const int XCLASS_NOTIFICATION = 0x8000;
        public const int XST_ADVACKRCVD = 13;
        public const int XST_ADVDATAACKRCVD = 16;
        public const int XST_ADVDATASENT = 15;
        public const int XST_ADVSENT = 11;
        public const int XST_CONNECTED = 2;
        public const int XST_DATARCVD = 6;
        public const int XST_EXECACKRCVD = 10;
        public const int XST_EXECSENT = 9;
        public const int XST_INCOMPLETE = 1;
        public const int XST_INIT1 = 3;
        public const int XST_INIT2 = 4;
        public const int XST_NULL = 0;
        public const int XST_POKEACKRCVD = 8;
        public const int XST_POKESENT = 7;
        public const int XST_REQSENT = 5;
        public const int XST_UNADVACKRCVD = 14;
        public const int XST_UNADVSENT = 12;
        public const int XTYPF_ACKREQ = 0x8;
        public const int XTYPF_NOBLOCK = 0x2;
        public const int XTYPF_NODATA = 0x4;
        public const int XTYP_ADVDATA = (0x10 | XCLASS_FLAGS);
        public const int XTYP_ADVREQ = (0x20 | XCLASS_DATA | XTYPF_NOBLOCK);
        public const int XTYP_ADVSTART = (0x30 | XCLASS_BOOL);
        public const int XTYP_ADVSTOP = (0x40 | XCLASS_NOTIFICATION);
        public const int XTYP_CONNECT = (0x60 | XCLASS_BOOL | XTYPF_NOBLOCK);
        public const int XTYP_CONNECT_CONFIRM = (0x70 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK);
        public const int XTYP_DISCONNECT = (0xC0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK);
        public const int XTYP_ERROR = (0x0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK);
        public const int XTYP_EXECUTE = (0x50 | XCLASS_FLAGS);
        public const int XTYP_MASK = 0xF0;
        public const int XTYP_MONITOR = (0xF0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK);
        public const int XTYP_POKE = (0x90 | XCLASS_FLAGS);
        public const int XTYP_REGISTER = (0xA0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK);
        public const int XTYP_REQUEST = (0xB0 | XCLASS_DATA);
        public const int XTYP_SHIFT = 4;
        public const int XTYP_UNREGISTER = (0xD0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK);
        public const int XTYP_WILDCONNECT = (0xE0 | XCLASS_DATA | XTYPF_NOBLOCK);
        public const int XTYP_XACT_COMPLETE = (0x80 | XCLASS_NOTIFICATION);

        public const int ABE_BOTTOM = 3;
        public const int ABE_LEFT = 0;
        public const int ABE_RIGHT = 2;
        public const int ABE_TOP = 1;
        public const int ABM_ACTIVATE = 0x6;
        public const int ABM_GETAUTOHIDEBAR = 0x7;
        public const int ABM_GETSTATE = 0x4;
        public const int ABM_GETTASKBARPOS = 0x5;
        public const int ABM_NEW = 0x0;
        public const int ABM_QUERYPOS = 0x2;
        public const int ABM_REMOVE = 0x1;
        public const int ABM_SETAUTOHIDEBAR = 0x8;
        public const int ABM_SETPOS = 0x3;
        public const int ABM_WINDOWPOSCHANGED = 0x9;
        public const int ABN_FULLSCREENAPP = 0x2;
        public const int ABN_POSCHANGED = 0x1;
        public const int ABN_STATECHANGE = 0x0;
        public const int ABN_WINDOWARRANGE = 0x3;
        public const int ABS_ALWAYSONTOP = 0x2;
        public const int ABS_AUTOHIDE = 0x1;
        public const int EIRESID = -1;
        public const int FOF_ALLOWUNDO = 0x40;
        public const int FOF_CONFIRMMOUSE = 0x2;
        public const int FOF_FILESONLY = 0x80;
        public const int FOF_MULTIDESTFILES = 0x1;
        public const int FOF_NOCONFIRMATION = 0x10;
        public const int FOF_NOCONFIRMMKDIR = 0x200;
        public const int FOF_RENAMEONCOLLISION = 0x8;
        public const int FOF_SILENT = 0x4;
        public const int FOF_SIMPLEPROGRESS = 0x100;
        public const int FOF_WANTMAPPINGHANDLE = 0x20;
        public const int FO_COPY = 0x2;
        public const int FO_DELETE = 0x3;
        public const int FO_MOVE = 0x1;
        public const int FO_RENAME = 0x4;
        public const int NIF_ICON = 0x2;
        public const int NIF_MESSAGE = 0x1;
        public const int NIF_TIP = 0x4;
        public const int NIM_ADD = 0x0;
        public const int NIM_DELETE = 0x2;
        public const int NIM_MODIFY = 0x1;
        public const int PO_DELETE = 0x13;
        public const int PO_PORTCHANGE = 0x20;
        public const int PO_RENAME = 0x14;
        public const int PO_REN_PORT = 0x34;
        public const int SEE_MASK_CLASSKEY = 0x3;
        public const int SEE_MASK_CLASSNAME = 0x1;
        public const int SEE_MASK_CONNECTNETDRV = 0x80;
        public const int SEE_MASK_DOENVSUBST = 0x200;
        public const int SEE_MASK_FLAG_DDEWAIT = 0x100;
        public const int SEE_MASK_FLAG_NO_UI = 0x400;
        public const int SEE_MASK_HOTKEY = 0x20;
        public const int SEE_MASK_ICON = 0x10;
        public const int SEE_MASK_IDLIST = 0x4;
        public const int SEE_MASK_INVOKEIDLIST = 0xC;
        public const int SEE_MASK_NOCLOSEPROCESS = 0x40;
        public const int SE_ERR_ACCESSDENIED = 5;
        public const int SE_ERR_ASSOCINCOMPLETE = 27;
        public const int SE_ERR_DDEBUSY = 30;
        public const int SE_ERR_DDEFAIL = 29;
        public const int SE_ERR_DDETIMEOUT = 28;
        public const int SE_ERR_DLLNOTFOUND = 32;
        public const int SE_ERR_FNF = 2;
        public const int SE_ERR_NOASSOC = 31;
        public const int SE_ERR_OOM = 8;
        public const int SE_ERR_PNF = 3;
        public const int SE_ERR_SHARE = 26;
        public const int SHGFI_ATTRIBUTES = 0x800;
        public const int SHGFI_DISPLAYNAME = 0x200;
        public const int SHGFI_EXETYPE = 0x2000;
        public const int SHGFI_ICON = 0x100;
        public const int SHGFI_ICONLOCATION = 0x1000;
        public const int SHGFI_LARGEICON = 0x0;
        public const int SHGFI_LINKOVERLAY = 0x8000;
        public const int SHGFI_OPENICON = 0x2;
        public const int SHGFI_PIDL = 0x8;
        public const int SHGFI_SELECTED = 0x10000;
        public const int SHGFI_SHELLICONSIZE = 0x4;
        public const int SHGFI_SMALLICON = 0x1;
        public const int SHGFI_SYSICONINDEX = 0x4000;
        public const int SHGFI_TYPENAME = 0x400;
        public const int SHGFI_USEFILEATTRIBUTES = 0x10;
        public const int SHGNLI_PIDL = 0x1;
        public const int SHGNLI_PREFIXNAME = 0x2;

        public const int CNLEN = 15;
        public const int CONNECT_UPDATE_PROFILE = 0x1;
        public const int FILTER_INTERDOMAIN_TRUST_ACCOUNT = 0x8;
        public const int FILTER_NORMAL_ACCOUNT = 0x2;
        public const int FILTER_PROXY_ACCOUNT = 0x4;
        public const int FILTER_SERVER_TRUST_ACCOUNT = 0x20;
        public const int FILTER_TEMP_DUPLICATE_ACCOUNT = 0x1;
        public const int FILTER_WORKSTATION_TRUST_ACCOUNT = 0x10;
        public const int GNLEN = UNLEN;
        public const int LG_INCLUDE_INDIRECT = 0x1;
        public const int LM20_PWLEN = 14;
        public const int MAXCOMMENTSZ = 256;
        public const int NERR_BASE = 2100;
        public const int NERR_GroupExists = (NERR_BASE + 123);
        public const int NERR_InvalidComputer = (NERR_BASE + 251);
        public const int NERR_NotPrimary = (NERR_BASE + 126);
        public const int NERR_PasswordTooShort = (NERR_BASE + 145);
        public const int NERR_Success = 0;
        public const int NERR_UserExists = (NERR_BASE + 124);
        public const int PWLEN = 256;
        public const int RESOURCEDISPLAYTYPE_DOMAIN = 0x1;
        public const int RESOURCEDISPLAYTYPE_FILE = 0x4;
        public const int RESOURCEDISPLAYTYPE_GENERIC = 0x0;
        public const int RESOURCEDISPLAYTYPE_GROUP = 0x5;
        public const int RESOURCEDISPLAYTYPE_SERVER = 0x2;
        public const int RESOURCEDISPLAYTYPE_SHARE = 0x3;
        public const int RESOURCETYPE_ANY = 0x0;
        public const int RESOURCETYPE_DISK = 0x1;
        public const int RESOURCETYPE_PRINT = 0x2;
        public const int RESOURCETYPE_UNKNOWN = 0xFFFF;
        public const int RESOURCEUSAGE_ALL = 0x0;
        public const int RESOURCEUSAGE_CONNECTABLE = 0x1;
        public const int RESOURCEUSAGE_CONTAINER = 0x2;
        public const int RESOURCEUSAGE_RESERVED = unchecked((int)0x80000000);
        public const int RESOURCE_CONNECTED = 0x1;
        public const int RESOURCE_ENUM_ALL = 0xFFFF;
        public const int RESOURCE_GLOBALNET = 0x2;
        public const int RESOURCE_PUBLICNET = 0x2;
        public const int RESOURCE_REMEMBERED = 0x3;
        public const int TIMEQ_FOREVER = -1;
        public const int UF_ACCOUNTDISABLE = 0x2;
        public const int UF_HOMEDIR_REQUIRED = 0x8;
        public const int UF_LOCKOUT = 0x10;
        public const int UF_PASSWD_CANT_CHANGE = 0x40;
        public const int UF_PASSWD_NOTREQD = 0x20;
        public const int UF_SCRIPT = 0x1;
        public const int UNITS_PER_DAY = 24;
        public const int UNITS_PER_WEEK = UNITS_PER_DAY * 7;
        public const int UNLEN = 256;
        public const int USER_MAXSTORAGE_UNLIMITED = -1;
        public const int USER_NO_LOGOFF = -1;
        public const int USER_PRIV_ADMIN = 2;
        public const int USER_PRIV_GUEST = 0;
        public const int USER_PRIV_MASK = 3;
        public const int USER_PRIV_USER = 1;
        public const int WN_ACCESS_DENIED = ERROR_ACCESS_DENIED;
        public const int WN_ALREADY_CONNECTED = ERROR_ALREADY_ASSIGNED;
        public const int WN_BAD_LOCALNAME = ERROR_BAD_DEVICE;
        public const int WN_BAD_NETNAME = ERROR_BAD_NET_NAME;
        public const int WN_BAD_PASSWORD = ERROR_INVALID_PASSWORD;
        public const int WN_BAD_POINTER = ERROR_INVALID_ADDRESS;
        public const int WN_BAD_PROFILE = ERROR_BAD_PROFILE;
        public const int WN_BAD_PROVIDER = ERROR_BAD_PROVIDER;
        public const int WN_BAD_USER = ERROR_BAD_USERNAME;
        public const int WN_BAD_VALUE = ERROR_INVALID_PARAMETER;
        public const int WN_CANNOT_OPEN_PROFILE = ERROR_CANNOT_OPEN_PROFILE;
        public const int WN_CONNECTION_CLOSED = ERROR_CONNECTION_UNAVAIL;
        public const int WN_DEVICE_ERROR = ERROR_GEN_FAILURE;
        public const int WN_DEVICE_IN_USE = ERROR_DEVICE_IN_USE;
        public const int WN_EXTENDED_ERROR = ERROR_EXTENDED_ERROR;
        public const int WN_FUNCTION_BUSY = ERROR_BUSY;
        public const int WN_MORE_DATA = ERROR_MORE_DATA;
        public const int WN_NET_ERROR = ERROR_UNEXP_NET_ERR;
        public const int WN_NOT_CONNECTED = ERROR_NOT_CONNECTED;
        public const int WN_NOT_SUPPORTED = ERROR_NOT_SUPPORTED;
        public const int WN_NO_NETWORK = ERROR_NO_NETWORK;
        public const int WN_NO_NET_OR_BAD_PATH = ERROR_NO_NET_OR_BAD_PATH;
        public const int WN_OPEN_FILES = ERROR_OPEN_FILES;
        public const int WN_OUT_OF_MEMORY = ERROR_NOT_ENOUGH_MEMORY;
        public const int WN_SUCCESS = NO_ERROR;
        public const int WN_WINDOWS_ERROR = ERROR_UNEXP_NET_ERR;

        public const int AUXCAPS_AUXIN = 2;
        public const int AUXCAPS_CDAUDIO = 1;
        public const int AUXCAPS_LRVOLUME = 0x2;
        public const int AUXCAPS_VOLUME = 0x1;
        public const int AUX_MAPPER = -1;
        public const int C1_TRANSPARENT = 0x1;
        public const int CALLBACK_FUNCTION = 0x30000;
        public const int CALLBACK_NULL = 0x0;
        public const int CALLBACK_TASK = 0x20000;
        public const int CALLBACK_TYPEMASK = 0x70000;
        public const int CALLBACK_WINDOW = 0x10000;
        public const int CAPS1 = 94;
        public const int DRVCNF_CANCEL = 0x0;
        public const int DRVCNF_OK = 0x1;
        public const int DRVCNF_RESTART = 0x2;
        public const int DRV_CANCEL = DRVCNF_CANCEL;
        public const int DRV_CLOSE = 0x4;
        public const int DRV_CONFIGURE = 0x7;
        public const int DRV_DISABLE = 0x5;
        public const int DRV_ENABLE = 0x2;
        public const int DRV_EXITSESSION = 0xB;
        public const int DRV_FREE = 0x6;
        public const int DRV_INSTALL = 0x9;
        public const int DRV_LOAD = 0x1;
        public const int DRV_MCI_FIRST = DRV_RESERVED;
        public const int DRV_MCI_LAST = DRV_RESERVED + 0xFFF;
        public const int DRV_OK = DRVCNF_OK;
        public const int DRV_OPEN = 0x3;
        public const int DRV_POWER = 0xF;
        public const int DRV_QUERYCONFIGURE = 0x8;
        public const int DRV_REMOVE = 0xA;
        public const int DRV_RESERVED = 0x800;
        public const int DRV_RESTART = DRVCNF_RESTART;
        public const int DRV_USER = 0x4000;
        public const int JOYERR_BASE = 160;
        public const int JOYERR_NOCANDO = (JOYERR_BASE + 6);
        public const int JOYERR_NOERROR = (0);
        public const int JOYERR_PARMS = (JOYERR_BASE + 5);
        public const int JOYERR_UNPLUGGED = (JOYERR_BASE + 7);
        public const int JOYSTICKID1 = 0;
        public const int JOYSTICKID2 = 1;
        public const int JOY_BUTTON1 = 0x1;
        public const int JOY_BUTTON10 = 0x200;
        public const int JOY_BUTTON11 = 0x400;
        public const int JOY_BUTTON12 = 0x800;
        public const int JOY_BUTTON13 = 0x1000;
        public const int JOY_BUTTON14 = 0x2000;
        public const int JOY_BUTTON15 = 0x4000;
        public const int JOY_BUTTON16 = 0x8000;
        public const int JOY_BUTTON17 = 0x10000;
        public const int JOY_BUTTON18 = 0x20000;
        public const int JOY_BUTTON19 = 0x40000;
        public const int JOY_BUTTON1CHG = 0x100;
        public const int JOY_BUTTON2 = 0x2;
        public const int JOY_BUTTON20 = 0x80000;
        public const int JOY_BUTTON21 = 0x100000;
        public const int JOY_BUTTON22 = 0x200000;
        public const int JOY_BUTTON23 = 0x400000;
        public const int JOY_BUTTON24 = 0x800000;
        public const int JOY_BUTTON25 = 0x1000000;
        public const int JOY_BUTTON26 = 0x2000000;
        public const int JOY_BUTTON27 = 0x4000000;
        public const int JOY_BUTTON28 = 0x8000000;
        public const int JOY_BUTTON29 = 0x10000000;
        public const int JOY_BUTTON2CHG = 0x200;
        public const int JOY_BUTTON3 = 0x4;
        public const int JOY_BUTTON30 = 0x20000000;
        public const int JOY_BUTTON31 = 0x40000000;
        public const int JOY_BUTTON32 = unchecked((int)0x80000000);
        public const int JOY_BUTTON3CHG = 0x400;
        public const int JOY_BUTTON4 = 0x8;
        public const int JOY_BUTTON4CHG = 0x800;
        public const int JOY_BUTTON5 = 0x10;
        public const int JOY_BUTTON6 = 0x20;
        public const int JOY_BUTTON7 = 0x40;
        public const int JOY_BUTTON8 = 0x80;
        public const int JOY_BUTTON9 = 0x100;
        public const int JOY_CAL_READ3 = 0x40000;
        public const int JOY_CAL_READ4 = 0x80000;
        public const int JOY_CAL_READ5 = 0x400000;
        public const int JOY_CAL_READ6 = 0x800000;
        public const int JOY_CAL_READALWAYS = 0x10000;
        public const int JOY_CAL_READRONLY = 0x2000000;
        public const int JOY_CAL_READUONLY = 0x4000000;
        public const int JOY_CAL_READVONLY = 0x8000000;
        public const int JOY_CAL_READXONLY = 0x100000;
        public const int JOY_CAL_READXYONLY = 0x20000;
        public const int JOY_CAL_READYONLY = 0x200000;
        public const int JOY_CAL_READZONLY = 0x1000000;
        public const int JOY_POVBACKWARD = 18000;
        public const int JOY_POVCENTERED = -1;
        public const int JOY_POVFORWARD = 0;
        public const int JOY_POVLEFT = 27000;
        public const int JOY_POVRIGHT = 9000;
        public const int JOY_RETURNALL = (JOY_RETURNX | JOY_RETURNY | JOY_RETURNZ | JOY_RETURNR | JOY_RETURNU | JOY_RETURNV | JOY_RETURNPOV | JOY_RETURNBUTTONS);
        public const int JOY_RETURNBUTTONS = 0x80;
        public const int JOY_RETURNCENTERED = 0x400;
        public const int JOY_RETURNPOV = 0x40;
        public const int JOY_RETURNPOVCTS = 0x200;
        public const int JOY_RETURNR = 0x8;
        public const int JOY_RETURNRAWDATA = 0x100;
        public const int JOY_RETURNU = 0x10;
        public const int JOY_RETURNV = 0x20;
        public const int JOY_RETURNX = 0x1;
        public const int JOY_RETURNY = 0x2;
        public const int JOY_RETURNZ = 0x4;
        public const int JOY_USEDEADZONE = 0x800;
        public const int LZERROR_BADINHANDLE = (-1);
        public const int LZERROR_BADOUTHANDLE = (-2);
        public const int LZERROR_BADVALUE = (-7);
        public const int LZERROR_GLOBLOCK = (-6);
        public const int LZERROR_PUBLICLOC = (-5);
        public const int LZERROR_READ = (-3);
        public const int LZERROR_UNKNOWNALG = (-8);
        public const int LZERROR_WRITE = (-4);
        public const int MAXERRORLENGTH = 128;
        public const int MAXPNAMELEN = 32;
        public const int MCIERR_BAD_CONSTANT = (MCIERR_BASE + 34);
        public const int MCIERR_BAD_INTEGER = (MCIERR_BASE + 14);
        public const int MCIERR_BAD_TIME_FORMAT = (MCIERR_BASE + 37);
        public const int MCIERR_BASE = 256;
        public const int MCIERR_CANNOT_LOAD_DRIVER = (MCIERR_BASE + 10);
        public const int MCIERR_CANNOT_USE_ALL = (MCIERR_BASE + 23);
        public const int MCIERR_CREATEWINDOW = (MCIERR_BASE + 91);
        public const int MCIERR_CUSTOM_DRIVER_BASE = (MCIERR_BASE + 256);
        public const int MCIERR_DEVICE_LENGTH = (MCIERR_BASE + 54);
        public const int MCIERR_DEVICE_LOCKED = (MCIERR_BASE + 32);
        public const int MCIERR_DEVICE_NOT_INSTALLED = (MCIERR_BASE + 50);
        public const int MCIERR_DEVICE_NOT_READY = (MCIERR_BASE + 20);
        public const int MCIERR_DEVICE_OPEN = (MCIERR_BASE + 9);
        public const int MCIERR_DEVICE_ORD_LENGTH = (MCIERR_BASE + 55);
        public const int MCIERR_DEVICE_TYPE_REQUIRED = (MCIERR_BASE + 31);
        public const int MCIERR_DRIVER = (MCIERR_BASE + 22);
        public const int MCIERR_DRIVER_INTERNAL = (MCIERR_BASE + 16);
        public const int MCIERR_DUPLICATE_ALIAS = (MCIERR_BASE + 33);
        public const int MCIERR_DUPLICATE_FLAGS = (MCIERR_BASE + 39);
        public const int MCIERR_EXTENSION_NOT_FOUND = (MCIERR_BASE + 25);
        public const int MCIERR_EXTRA_CHARACTERS = (MCIERR_BASE + 49);
        public const int MCIERR_FILENAME_REQUIRED = (MCIERR_BASE + 48);
        public const int MCIERR_FILE_NOT_FOUND = (MCIERR_BASE + 19);
        public const int MCIERR_FILE_NOT_SAVED = (MCIERR_BASE + 30);
        public const int MCIERR_FILE_READ = (MCIERR_BASE + 92);
        public const int MCIERR_FILE_WRITE = (MCIERR_BASE + 93);
        public const int MCIERR_FLAGS_NOT_COMPATIBLE = (MCIERR_BASE + 28);
        public const int MCIERR_GET_CD = (MCIERR_BASE + 51);
        public const int MCIERR_HARDWARE = (MCIERR_BASE + 6);
        public const int MCIERR_ILLEGAL_FOR_AUTO_OPEN = (MCIERR_BASE + 47);
        public const int MCIERR_INTERNAL = (MCIERR_BASE + 21);
        public const int MCIERR_INVALID_DEVICE_ID = (MCIERR_BASE + 1);
        public const int MCIERR_INVALID_DEVICE_NAME = (MCIERR_BASE + 7);
        public const int MCIERR_INVALID_FILE = (MCIERR_BASE + 40);
        public const int MCIERR_MISSING_COMMAND_STRING = (MCIERR_BASE + 11);
        public const int MCIERR_MISSING_DEVICE_NAME = (MCIERR_BASE + 36);
        public const int MCIERR_MISSING_PARAMETER = (MCIERR_BASE + 17);
        public const int MCIERR_MISSING_STRING_ARGUMENT = (MCIERR_BASE + 13);
        public const int MCIERR_MULTIPLE = (MCIERR_BASE + 24);
        public const int MCIERR_MUST_USE_SHAREABLE = (MCIERR_BASE + 35);
        public const int MCIERR_NEW_REQUIRES_ALIAS = (MCIERR_BASE + 43);
        public const int MCIERR_NONAPPLICABLE_FUNCTION = (MCIERR_BASE + 46);
        public const int MCIERR_NOTIFY_ON_AUTO_OPEN = (MCIERR_BASE + 44);
        public const int MCIERR_NO_CLOSING_QUOTE = (MCIERR_BASE + 38);
        public const int MCIERR_NO_ELEMENT_ALLOWED = (MCIERR_BASE + 45);
        public const int MCIERR_NO_INTEGER = (MCIERR_BASE + 56);
        public const int MCIERR_NO_WINDOW = (MCIERR_BASE + 90);
        public const int MCIERR_NULL_PARAMETER_BLOCK = (MCIERR_BASE + 41);
        public const int MCIERR_OUTOFRANGE = (MCIERR_BASE + 26);
        public const int MCIERR_OUT_OF_MEMORY = (MCIERR_BASE + 8);
        public const int MCIERR_PARAM_OVERFLOW = (MCIERR_BASE + 12);
        public const int MCIERR_PARSER_INTERNAL = (MCIERR_BASE + 15);
        public const int MCIERR_SEQ_DIV_INCOMPATIBLE = (MCIERR_BASE + 80);
        public const int MCIERR_SEQ_NOMIDIPRESENT = (MCIERR_BASE + 87);
        public const int MCIERR_SEQ_PORTUNSPECIFIED = (MCIERR_BASE + 86);
        public const int MCIERR_SEQ_PORT_INUSE = (MCIERR_BASE + 81);
        public const int MCIERR_SEQ_PORT_MAPNODEVICE = (MCIERR_BASE + 83);
        public const int MCIERR_SEQ_PORT_MISCERROR = (MCIERR_BASE + 84);
        public const int MCIERR_SEQ_PORT_NONEXISTENT = (MCIERR_BASE + 82);
        public const int MCIERR_SEQ_TIMER = (MCIERR_BASE + 85);
        public const int MCIERR_SET_CD = (MCIERR_BASE + 52);
        public const int MCIERR_SET_DRIVE = (MCIERR_BASE + 53);
        public const int MCIERR_UNNAMED_RESOURCE = (MCIERR_BASE + 42);
        public const int MCIERR_UNRECOGNIZED_COMMAND = (MCIERR_BASE + 5);
        public const int MCIERR_UNRECOGNIZED_KEYWORD = (MCIERR_BASE + 3);
        public const int MCIERR_UNSUPPORTED_FUNCTION = (MCIERR_BASE + 18);
        public const int MCIERR_WAVE_INPUTSINUSE = (MCIERR_BASE + 66);
        public const int MCIERR_WAVE_INPUTSUNSUITABLE = (MCIERR_BASE + 72);
        public const int MCIERR_WAVE_INPUTUNSPECIFIED = (MCIERR_BASE + 69);
        public const int MCIERR_WAVE_OUTPUTSINUSE = (MCIERR_BASE + 64);
        public const int MCIERR_WAVE_OUTPUTSUNSUITABLE = (MCIERR_BASE + 70);
        public const int MCIERR_WAVE_OUTPUTUNSPECIFIED = (MCIERR_BASE + 68);
        public const int MCIERR_WAVE_SETINPUTINUSE = (MCIERR_BASE + 67);
        public const int MCIERR_WAVE_SETINPUTUNSUITABLE = (MCIERR_BASE + 73);
        public const int MCIERR_WAVE_SETOUTPUTINUSE = (MCIERR_BASE + 65);
        public const int MCIERR_WAVE_SETOUTPUTUNSUITABLE = (MCIERR_BASE + 71);
        public const int MCI_ALL_DEVICE_ID = -1;
        public const int MCI_ANIM_GETDEVCAPS_CAN_REVERSE = 0x4001;
        public const int MCI_ANIM_GETDEVCAPS_CAN_STRETCH = 0x4007;
        public const int MCI_ANIM_GETDEVCAPS_FAST_RATE = 0x4002;
        public const int MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = 0x4008;
        public const int MCI_ANIM_GETDEVCAPS_NORMAL_RATE = 0x4004;
        public const int MCI_ANIM_GETDEVCAPS_PALETTES = 0x4006;
        public const int MCI_ANIM_GETDEVCAPS_SLOW_RATE = 0x4003;
        public const int MCI_ANIM_INFO_TEXT = 0x10000;
        public const int MCI_ANIM_OPEN_NOSTATIC = 0x40000;
        public const int MCI_ANIM_OPEN_PARENT = 0x20000;
        public const int MCI_ANIM_OPEN_WS = 0x10000;
        public const int MCI_ANIM_PLAY_FAST = 0x40000;
        public const int MCI_ANIM_PLAY_REVERSE = 0x20000;
        public const int MCI_ANIM_PLAY_SCAN = 0x100000;
        public const int MCI_ANIM_PLAY_SLOW = 0x80000;
        public const int MCI_ANIM_PLAY_SPEED = 0x10000;
        public const int MCI_ANIM_PUT_DESTINATION = 0x40000;
        public const int MCI_ANIM_PUT_SOURCE = 0x20000;
        public const int MCI_ANIM_REALIZE_BKGD = 0x20000;
        public const int MCI_ANIM_REALIZE_NORM = 0x10000;
        public const int MCI_ANIM_RECT = 0x10000;
        public const int MCI_ANIM_STATUS_FORWARD = 0x4002;
        public const int MCI_ANIM_STATUS_HPAL = 0x4004;
        public const int MCI_ANIM_STATUS_HWND = 0x4003;
        public const int MCI_ANIM_STATUS_SPEED = 0x4001;
        public const int MCI_ANIM_STATUS_STRETCH = 0x4005;
        public const int MCI_ANIM_STEP_FRAMES = 0x20000;
        public const int MCI_ANIM_STEP_REVERSE = 0x10000;
        public const int MCI_ANIM_UPDATE_HDC = 0x20000;
        public const int MCI_ANIM_WHERE_DESTINATION = 0x40000;
        public const int MCI_ANIM_WHERE_SOURCE = 0x20000;
        public const int MCI_ANIM_WINDOW_DEFAULT = 0x0;
        public const int MCI_ANIM_WINDOW_DISABLE_STRETCH = 0x200000;
        public const int MCI_ANIM_WINDOW_ENABLE_STRETCH = 0x100000;
        public const int MCI_ANIM_WINDOW_HWND = 0x10000;
        public const int MCI_ANIM_WINDOW_STATE = 0x40000;
        public const int MCI_ANIM_WINDOW_TEXT = 0x80000;
        public const int MCI_BREAK = 0x811;
        public const int MCI_BREAK_HWND = 0x200;
        public const int MCI_BREAK_KEY = 0x100;
        public const int MCI_BREAK_OFF = 0x400;
        public const int MCI_CD_OFFSET = 1088;
        public const int MCI_CLOSE = 0x804;
        public const int MCI_COPY = 0x852;
        public const int MCI_CUE = 0x830;
        public const int MCI_CUT = 0x851;
        public const int MCI_DELETE = 0x856;
        public const int MCI_DEVTYPE_ANIMATION = 519;
        public const int MCI_DEVTYPE_CD_AUDIO = 516;
        public const int MCI_DEVTYPE_DAT = 517;
        public const int MCI_DEVTYPE_DIGITAL_VIDEO = 520;
        public const int MCI_DEVTYPE_FIRST = MCI_DEVTYPE_VCR;
        public const int MCI_DEVTYPE_FIRST_USER = 0x1000;
        public const int MCI_DEVTYPE_LAST = MCI_DEVTYPE_SEQUENCER;
        public const int MCI_DEVTYPE_OTHER = 521;
        public const int MCI_DEVTYPE_OVERLAY = 515;
        public const int MCI_DEVTYPE_SCANNER = 518;
        public const int MCI_DEVTYPE_SEQUENCER = 523;
        public const int MCI_DEVTYPE_VCR = 513;
        public const int MCI_DEVTYPE_VIDEODISC = 514;
        public const int MCI_DEVTYPE_WAVEFORM_AUDIO = 522;
        public const int MCI_ESCAPE = 0x805;
        public const int MCI_FIRST = 0x800;
        public const int MCI_FORMAT_BYTES = 8;
        public const int MCI_FORMAT_FRAMES = 3;
        public const int MCI_FORMAT_HMS = 1;
        public const int MCI_FORMAT_MILLISECONDS = 0;
        public const int MCI_FORMAT_MSF = 2;
        public const int MCI_FORMAT_SAMPLES = 9;
        public const int MCI_FORMAT_SMPTE_24 = 4;
        public const int MCI_FORMAT_SMPTE_25 = 5;
        public const int MCI_FORMAT_SMPTE_30 = 6;
        public const int MCI_FORMAT_SMPTE_30DROP = 7;
        public const int MCI_FORMAT_TMSF = 10;
        public const int MCI_FREEZE = 0x844;
        public const int MCI_FROM = 0x4;
        public const int MCI_GETDEVCAPS = 0x80B;
        public const int MCI_GETDEVCAPS_CAN_EJECT = 0x7;
        public const int MCI_GETDEVCAPS_CAN_PLAY = 0x8;
        public const int MCI_GETDEVCAPS_CAN_RECORD = 0x1;
        public const int MCI_GETDEVCAPS_CAN_SAVE = 0x9;
        public const int MCI_GETDEVCAPS_COMPOUND_DEVICE = 0x6;
        public const int MCI_GETDEVCAPS_DEVICE_TYPE = 0x4;
        public const int MCI_GETDEVCAPS_HAS_AUDIO = 0x2;
        public const int MCI_GETDEVCAPS_HAS_VIDEO = 0x3;
        public const int MCI_GETDEVCAPS_ITEM = 0x100;
        public const int MCI_GETDEVCAPS_USES_FILES = 0x5;
        public const int MCI_INFO = 0x80A;
        public const int MCI_INFO_FILE = 0x200;
        public const int MCI_INFO_PRODUCT = 0x100;
        public const int MCI_LAST = 0xFFF;
        public const int MCI_LOAD = 0x850;
        public const int MCI_LOAD_FILE = 0x100;
        public const int MCI_MODE_NOT_READY = (MCI_STRING_OFFSET + 12);
        public const int MCI_MODE_OPEN = (MCI_STRING_OFFSET + 18);
        public const int MCI_MODE_PAUSE = (MCI_STRING_OFFSET + 17);
        public const int MCI_MODE_PLAY = (MCI_STRING_OFFSET + 14);
        public const int MCI_MODE_RECORD = (MCI_STRING_OFFSET + 15);
        public const int MCI_MODE_SEEK = (MCI_STRING_OFFSET + 16);
        public const int MCI_MODE_STOP = (MCI_STRING_OFFSET + 13);
        public const int MCI_NOTIFY = 0x1;
        public const int MCI_NOTIFY_ABORTED = 0x4;
        public const int MCI_NOTIFY_FAILURE = 0x8;
        public const int MCI_NOTIFY_SUCCESSFUL = 0x1;
        public const int MCI_NOTIFY_SUPERSEDED = 0x2;
        public const int MCI_OPEN = 0x803;
        public const int MCI_OPEN_ALIAS = 0x400;
        public const int MCI_OPEN_ELEMENT = 0x200;
        public const int MCI_OPEN_ELEMENT_ID = 0x800;
        public const int MCI_OPEN_SHAREABLE = 0x100;
        public const int MCI_OPEN_TYPE = 0x2000;
        public const int MCI_OPEN_TYPE_ID = 0x1000;
        public const int MCI_OVLY_GETDEVCAPS_CAN_FREEZE = 0x4002;
        public const int MCI_OVLY_GETDEVCAPS_CAN_STRETCH = 0x4001;
        public const int MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = 0x4003;
        public const int MCI_OVLY_INFO_TEXT = 0x10000;
        public const int MCI_OVLY_OPEN_PARENT = 0x20000;
        public const int MCI_OVLY_OPEN_WS = 0x10000;
        public const int MCI_OVLY_PUT_DESTINATION = 0x40000;
        public const int MCI_OVLY_PUT_FRAME = 0x80000;
        public const int MCI_OVLY_PUT_SOURCE = 0x20000;
        public const int MCI_OVLY_PUT_VIDEO = 0x100000;
        public const int MCI_OVLY_RECT = 0x10000;
        public const int MCI_OVLY_STATUS_HWND = 0x4001;
        public const int MCI_OVLY_STATUS_STRETCH = 0x4002;
        public const int MCI_OVLY_WHERE_DESTINATION = 0x40000;
        public const int MCI_OVLY_WHERE_FRAME = 0x80000;
        public const int MCI_OVLY_WHERE_SOURCE = 0x20000;
        public const int MCI_OVLY_WHERE_VIDEO = 0x100000;
        public const int MCI_OVLY_WINDOW_DEFAULT = 0x0;
        public const int MCI_OVLY_WINDOW_DISABLE_STRETCH = 0x200000;
        public const int MCI_OVLY_WINDOW_ENABLE_STRETCH = 0x100000;
        public const int MCI_OVLY_WINDOW_HWND = 0x10000;
        public const int MCI_OVLY_WINDOW_STATE = 0x40000;
        public const int MCI_OVLY_WINDOW_TEXT = 0x80000;
        public const int MCI_PASTE = 0x853;
        public const int MCI_PAUSE = 0x809;
        public const int MCI_PLAY = 0x806;
        public const int MCI_PUT = 0x842;
        public const int MCI_REALIZE = 0x840;
        public const int MCI_RECORD = 0x80F;
        public const int MCI_RECORD_INSERT = 0x100;
        public const int MCI_RECORD_OVERWRITE = 0x200;
        public const int MCI_RESUME = 0x855;
        public const int MCI_SAVE = 0x813;
        public const int MCI_SAVE_FILE = 0x100;
        public const int MCI_SEEK = 0x807;
        public const int MCI_SEEK_TO_END = 0x200;
        public const int MCI_SEEK_TO_START = 0x100;
        public const int MCI_SEQ_DIV_PPQN = (0 + MCI_SEQ_OFFSET);
        public const int MCI_SEQ_DIV_SMPTE_24 = (1 + MCI_SEQ_OFFSET);
        public const int MCI_SEQ_DIV_SMPTE_25 = (2 + MCI_SEQ_OFFSET);
        public const int MCI_SEQ_DIV_SMPTE_30 = (4 + MCI_SEQ_OFFSET);
        public const int MCI_SEQ_DIV_SMPTE_30DROP = (3 + MCI_SEQ_OFFSET);
        public const int MCI_SEQ_FILE = 0x4002;
        public const int MCI_SEQ_FORMAT_SONGPTR = 0x4001;
        public const int MCI_SEQ_MAPPER = 65535;
        public const int MCI_SEQ_MIDI = 0x4003;
        public const int MCI_SEQ_NONE = 65533;
        public const int MCI_SEQ_OFFSET = 1216;
        public const int MCI_SEQ_SET_MASTER = 0x80000;
        public const int MCI_SEQ_SET_OFFSET = 0x1000000;
        public const int MCI_SEQ_SET_PORT = 0x20000;
        public const int MCI_SEQ_SET_SLAVE = 0x40000;
        public const int MCI_SEQ_SET_TEMPO = 0x10000;
        public const int MCI_SEQ_SMPTE = 0x4004;
        public const int MCI_SEQ_STATUS_DIVTYPE = 0x400A;
        public const int MCI_SEQ_STATUS_MASTER = 0x4008;
        public const int MCI_SEQ_STATUS_OFFSET = 0x4009;
        public const int MCI_SEQ_STATUS_PORT = 0x4003;
        public const int MCI_SEQ_STATUS_SLAVE = 0x4007;
        public const int MCI_SEQ_STATUS_TEMPO = 0x4002;
        public const int MCI_SET = 0x80D;
        public const int MCI_SET_AUDIO = 0x800;
        public const int MCI_SET_AUDIO_ALL = 0x4001;
        public const int MCI_SET_AUDIO_LEFT = 0x4002;
        public const int MCI_SET_AUDIO_RIGHT = 0x4003;
        public const int MCI_SET_DOOR_CLOSED = 0x200;
        public const int MCI_SET_DOOR_OPEN = 0x100;
        public const int MCI_SET_OFF = 0x4000;
        public const int MCI_SET_ON = 0x2000;
        public const int MCI_SET_TIME_FORMAT = 0x400;
        public const int MCI_SET_VIDEO = 0x1000;
        public const int MCI_SOUND = 0x812;
        public const int MCI_SOUND_NAME = 0x100;
        public const int MCI_SPIN = 0x80C;
        public const int MCI_STATUS = 0x814;
        public const int MCI_STATUS_CURRENT_TRACK = 0x8;
        public const int MCI_STATUS_ITEM = 0x100;
        public const int MCI_STATUS_LENGTH = 0x1;
        public const int MCI_STATUS_MEDIA_PRESENT = 0x5;
        public const int MCI_STATUS_MODE = 0x4;
        public const int MCI_STATUS_NUMBER_OF_TRACKS = 0x3;
        public const int MCI_STATUS_POSITION = 0x2;
        public const int MCI_STATUS_READY = 0x7;
        public const int MCI_STATUS_START = 0x200;
        public const int MCI_STATUS_TIME_FORMAT = 0x6;
        public const int MCI_STEP = 0x80E;
        public const int MCI_STOP = 0x808;
        public const int MCI_STRING_OFFSET = 512;
        public const int MCI_SYSINFO = 0x810;
        public const int MCI_SYSINFO_INSTALLNAME = 0x800;
        public const int MCI_SYSINFO_NAME = 0x400;
        public const int MCI_SYSINFO_OPEN = 0x200;
        public const int MCI_SYSINFO_QUANTITY = 0x100;
        public const int MCI_TO = 0x8;
        public const int MCI_TRACK = 0x10;
        public const int MCI_UNFREEZE = 0x845;
        public const int MCI_UPDATE = 0x854;
        public const int MCI_USER_MESSAGES = (0x400 + MCI_FIRST);
        public const int MCI_VD_ESCAPE_STRING = 0x100;
        public const int MCI_VD_FORMAT_TRACK = 0x4001;
        public const int MCI_VD_GETDEVCAPS_CAN_REVERSE = 0x4002;
        public const int MCI_VD_GETDEVCAPS_CAV = 0x20000;
        public const int MCI_VD_GETDEVCAPS_CLV = 0x10000;
        public const int MCI_VD_GETDEVCAPS_FAST_RATE = 0x4003;
        public const int MCI_VD_GETDEVCAPS_NORMAL_RATE = 0x4005;
        public const int MCI_VD_GETDEVCAPS_SLOW_RATE = 0x4004;
        public const int MCI_VD_MEDIA_CAV = (MCI_VD_OFFSET + 3);
        public const int MCI_VD_MEDIA_CLV = (MCI_VD_OFFSET + 2);
        public const int MCI_VD_MEDIA_OTHER = (MCI_VD_OFFSET + 4);
        public const int MCI_VD_MODE_PARK = (MCI_VD_OFFSET + 1);
        public const int MCI_VD_OFFSET = 1024;
        public const int MCI_VD_PLAY_FAST = 0x20000;
        public const int MCI_VD_PLAY_REVERSE = 0x10000;
        public const int MCI_VD_PLAY_SCAN = 0x80000;
        public const int MCI_VD_PLAY_SLOW = 0x100000;
        public const int MCI_VD_PLAY_SPEED = 0x40000;
        public const int MCI_VD_SEEK_REVERSE = 0x10000;
        public const int MCI_VD_SPIN_DOWN = 0x20000;
        public const int MCI_VD_SPIN_UP = 0x10000;
        public const int MCI_VD_STATUS_DISC_SIZE = 0x4006;
        public const int MCI_VD_STATUS_FORWARD = 0x4003;
        public const int MCI_VD_STATUS_MEDIA_TYPE = 0x4004;
        public const int MCI_VD_STATUS_SIDE = 0x4005;
        public const int MCI_VD_STATUS_SPEED = 0x4002;
        public const int MCI_VD_STEP_FRAMES = 0x10000;
        public const int MCI_VD_STEP_REVERSE = 0x20000;
        public const int MCI_WAIT = 0x2;
        public const int MCI_WAVE_GETDEVCAPS_INPUTS = 0x4001;
        public const int MCI_WAVE_GETDEVCAPS_OUTPUTS = 0x4002;
        public const int MCI_WAVE_INPUT = 0x400000;
        public const int MCI_WAVE_MAPPER = (MCI_WAVE_OFFSET + 1);
        public const int MCI_WAVE_OFFSET = 1152;
        public const int MCI_WAVE_OPEN_BUFFER = 0x10000;
        public const int MCI_WAVE_OUTPUT = 0x800000;
        public const int MCI_WAVE_PCM = (MCI_WAVE_OFFSET + 0);
        public const int MCI_WAVE_SET_ANYINPUT = 0x4000000;
        public const int MCI_WAVE_SET_ANYOUTPUT = 0x8000000;
        public const int MCI_WAVE_SET_AVGBYTESPERSEC = 0x80000;
        public const int MCI_WAVE_SET_BITSPERSAMPLE = 0x200000;
        public const int MCI_WAVE_SET_BLOCKALIGN = 0x100000;
        public const int MCI_WAVE_SET_CHANNELS = 0x20000;
        public const int MCI_WAVE_SET_FORMATTAG = 0x10000;
        public const int MCI_WAVE_SET_SAMPLESPERSEC = 0x40000;
        public const int MCI_WAVE_STATUS_AVGBYTESPERSEC = 0x4004;
        public const int MCI_WAVE_STATUS_BITSPERSAMPLE = 0x4006;
        public const int MCI_WAVE_STATUS_BLOCKALIGN = 0x4005;
        public const int MCI_WAVE_STATUS_CHANNELS = 0x4002;
        public const int MCI_WAVE_STATUS_FORMATTAG = 0x4001;
        public const int MCI_WAVE_STATUS_LEVEL = 0x4007;
        public const int MCI_WAVE_STATUS_SAMPLESPERSEC = 0x4003;
        public const int MCI_WHERE = 0x843;
        public const int MCI_WINDOW = 0x841;
        public const int MEVT_F_CALLBACK = 0x40000000;
        public const int MEVT_F_LONG = unchecked((int)0x80000000);
        public const int MEVT_F_SHORT = 0x0;
        public const int MHDR_DONE = 0x1;
        public const int MHDR_INQUEUE = 0x4;
        public const int MHDR_PREPARED = 0x2;
        public const int MHDR_VALID = 0x7;
        public const int MIDICAPS_CACHE = 0x4;
        public const int MIDICAPS_LRVOLUME = 0x2;
        public const int MIDICAPS_STREAM = 0x8;
        public const int MIDICAPS_VOLUME = 0x1;
        public const int MIDIERR_BASE = 64;
        public const int MIDIERR_INVALIDSETUP = (MIDIERR_BASE + 5);
        public const int MIDIERR_LASTERROR = (MIDIERR_BASE + 5);
        public const int MIDIERR_NODEVICE = (MIDIERR_BASE + 4);
        public const int MIDIERR_NOMAP = (MIDIERR_BASE + 2);
        public const int MIDIERR_NOTREADY = (MIDIERR_BASE + 3);
        public const int MIDIERR_STILLPLAYING = (MIDIERR_BASE + 1);
        public const int MIDIERR_UNPREPARED = (MIDIERR_BASE + 0);
        public const int MIDIMAPPER = (-1);
        public const int MIDIPROP_GET = 0x40000000;
        public const int MIDIPROP_SET = unchecked((int)0x80000000);
        public const int MIDIPROP_TEMPO = 0x2;
        public const int MIDIPROP_TIMEDIV = 0x1;
        public const int MIDISTRM_ERROR = -2;
        public const int MIDI_CACHE_ALL = 1;
        public const int MIDI_CACHE_BESTFIT = 2;
        public const int MIDI_CACHE_QUERY = 3;
        public const int MIDI_CACHE_VALID = (MIDI_CACHE_ALL | MIDI_CACHE_BESTFIT | MIDI_CACHE_QUERY | MIDI_UNCACHE);
        public const int MIDI_IO_STATUS = 0x20;
        public const int MIDI_MAPPER = -1;
        public const int MIDI_UNCACHE = 4;
        public const int MIM_CLOSE = MM_MIM_CLOSE;
        public const int MIM_DATA = MM_MIM_DATA;
        public const int MIM_ERROR = MM_MIM_ERROR;
        public const int MIM_LONGDATA = MM_MIM_LONGDATA;
        public const int MIM_LONGERROR = MM_MIM_LONGERROR;
        public const int MIM_MOREDATA = MM_MIM_MOREDATA;
        public const int MIM_OPEN = MM_MIM_OPEN;
        public const int MIXERCONTROL_CONTROLF_DISABLED = unchecked((int)0x80000000);
        public const int MIXERCONTROL_CONTROLF_MULTIPLE = 0x2;
        public const int MIXERCONTROL_CONTROLF_UNIFORM = 0x1;
        public const int MIXERCONTROL_CONTROLTYPE_BASS = (MIXERCONTROL_CONTROLTYPE_FADER + 2);
        public const int MIXERCONTROL_CONTROLTYPE_BOOLEAN = (MIXERCONTROL_CT_CLASS_SWITCH | MIXERCONTROL_CT_SC_SWITCH_BOOLEAN | MIXERCONTROL_CT_UNITS_BOOLEAN);
        public const int MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = (MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_BOOLEAN);
        public const int MIXERCONTROL_CONTROLTYPE_BUTTON = (MIXERCONTROL_CT_CLASS_SWITCH | MIXERCONTROL_CT_SC_SWITCH_BUTTON | MIXERCONTROL_CT_UNITS_BOOLEAN);
        public const int MIXERCONTROL_CONTROLTYPE_CUSTOM = (MIXERCONTROL_CT_CLASS_CUSTOM | MIXERCONTROL_CT_UNITS_CUSTOM);
        public const int MIXERCONTROL_CONTROLTYPE_DECIBELS = (MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_DECIBELS);
        public const int MIXERCONTROL_CONTROLTYPE_EQUALIZER = (MIXERCONTROL_CONTROLTYPE_FADER + 4);
        public const int MIXERCONTROL_CONTROLTYPE_FADER = (MIXERCONTROL_CT_CLASS_FADER | MIXERCONTROL_CT_UNITS_UNSIGNED);
        public const int MIXERCONTROL_CONTROLTYPE_LOUDNESS = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4);
        public const int MIXERCONTROL_CONTROLTYPE_MICROTIME = (MIXERCONTROL_CT_CLASS_TIME | MIXERCONTROL_CT_SC_TIME_MICROSECS | MIXERCONTROL_CT_UNITS_UNSIGNED);
        public const int MIXERCONTROL_CONTROLTYPE_MILLITIME = (MIXERCONTROL_CT_CLASS_TIME | MIXERCONTROL_CT_SC_TIME_MILLISECS | MIXERCONTROL_CT_UNITS_UNSIGNED);
        public const int MIXERCONTROL_CONTROLTYPE_MIXER = (MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1);
        public const int MIXERCONTROL_CONTROLTYPE_MONO = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3);
        public const int MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT = (MIXERCONTROL_CT_CLASS_LIST | MIXERCONTROL_CT_SC_LIST_MULTIPLE | MIXERCONTROL_CT_UNITS_BOOLEAN);
        public const int MIXERCONTROL_CONTROLTYPE_MUTE = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2);
        public const int MIXERCONTROL_CONTROLTYPE_MUX = (MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1);
        public const int MIXERCONTROL_CONTROLTYPE_ONOFF = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1);
        public const int MIXERCONTROL_CONTROLTYPE_PAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 1);
        public const int MIXERCONTROL_CONTROLTYPE_PEAKMETER = (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1);
        public const int MIXERCONTROL_CONTROLTYPE_PERCENT = (MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_PERCENT);
        public const int MIXERCONTROL_CONTROLTYPE_QSOUNDPAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 2);
        public const int MIXERCONTROL_CONTROLTYPE_SIGNED = (MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_SIGNED);
        public const int MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_SIGNED);
        public const int MIXERCONTROL_CONTROLTYPE_SINGLESELECT = (MIXERCONTROL_CT_CLASS_LIST | MIXERCONTROL_CT_SC_LIST_SINGLE | MIXERCONTROL_CT_UNITS_BOOLEAN);
        public const int MIXERCONTROL_CONTROLTYPE_SLIDER = (MIXERCONTROL_CT_CLASS_SLIDER | MIXERCONTROL_CT_UNITS_SIGNED);
        public const int MIXERCONTROL_CONTROLTYPE_STEREOENH = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5);
        public const int MIXERCONTROL_CONTROLTYPE_TREBLE = (MIXERCONTROL_CONTROLTYPE_FADER + 3);
        public const int MIXERCONTROL_CONTROLTYPE_UNSIGNED = (MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_UNSIGNED);
        public const int MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_UNSIGNED);
        public const int MIXERCONTROL_CONTROLTYPE_VOLUME = (MIXERCONTROL_CONTROLTYPE_FADER + 1);
        public const int MIXERCONTROL_CT_CLASS_CUSTOM = 0x0;
        public const int MIXERCONTROL_CT_CLASS_FADER = 0x50000000;
        public const int MIXERCONTROL_CT_CLASS_LIST = 0x70000000;
        public const int MIXERCONTROL_CT_CLASS_MASK = unchecked((int)0xF0000000);
        public const int MIXERCONTROL_CT_CLASS_METER = 0x10000000;
        public const int MIXERCONTROL_CT_CLASS_NUMBER = 0x30000000;
        public const int MIXERCONTROL_CT_CLASS_SLIDER = 0x40000000;
        public const int MIXERCONTROL_CT_CLASS_SWITCH = 0x20000000;
        public const int MIXERCONTROL_CT_CLASS_TIME = 0x60000000;
        public const int MIXERCONTROL_CT_SC_LIST_MULTIPLE = 0x1000000;
        public const int MIXERCONTROL_CT_SC_LIST_SINGLE = 0x0;
        public const int MIXERCONTROL_CT_SC_METER_POLLED = 0x0;
        public const int MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = 0x0;
        public const int MIXERCONTROL_CT_SC_SWITCH_BUTTON = 0x1000000;
        public const int MIXERCONTROL_CT_SC_TIME_MICROSECS = 0x0;
        public const int MIXERCONTROL_CT_SC_TIME_MILLISECS = 0x1000000;
        public const int MIXERCONTROL_CT_SUBCLASS_MASK = 0xF000000;
        public const int MIXERCONTROL_CT_UNITS_BOOLEAN = 0x10000;
        public const int MIXERCONTROL_CT_UNITS_CUSTOM = 0x0;
        public const int MIXERCONTROL_CT_UNITS_DECIBELS = 0x40000;
        public const int MIXERCONTROL_CT_UNITS_MASK = 0xFF0000;
        public const int MIXERCONTROL_CT_UNITS_PERCENT = 0x50000;
        public const int MIXERCONTROL_CT_UNITS_SIGNED = 0x20000;
        public const int MIXERCONTROL_CT_UNITS_UNSIGNED = 0x30000;
        public const int MIXERLINE_COMPONENTTYPE_DST_DIGITAL = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 1);
        public const int MIXERLINE_COMPONENTTYPE_DST_FIRST = 0x0;
        public const int MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 5);
        public const int MIXERLINE_COMPONENTTYPE_DST_LAST = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8);
        public const int MIXERLINE_COMPONENTTYPE_DST_LINE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 2);
        public const int MIXERLINE_COMPONENTTYPE_DST_MONITOR = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 3);
        public const int MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 4);
        public const int MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 6);
        public const int MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 0);
        public const int MIXERLINE_COMPONENTTYPE_DST_VOICEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8);
        public const int MIXERLINE_COMPONENTTYPE_DST_WAVEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 7);
        public const int MIXERLINE_COMPONENTTYPE_SRC_ANALOG = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10);
        public const int MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9);
        public const int MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5);
        public const int MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1);
        public const int MIXERLINE_COMPONENTTYPE_SRC_FIRST = 0x1000;
        public const int MIXERLINE_COMPONENTTYPE_SRC_LAST = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10);
        public const int MIXERLINE_COMPONENTTYPE_SRC_LINE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2);
        public const int MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3);
        public const int MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7);
        public const int MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4);
        public const int MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6);
        public const int MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0);
        public const int MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8);
        public const int MIXERLINE_LINEF_ACTIVE = 0x1;
        public const int MIXERLINE_LINEF_DISCONNECTED = 0x8000;
        public const int MIXERLINE_LINEF_SOURCE = unchecked((int)0x80000000);
        public const int MIXERLINE_TARGETTYPE_AUX = 5;
        public const int MIXERLINE_TARGETTYPE_MIDIIN = 4;
        public const int MIXERLINE_TARGETTYPE_MIDIOUT = 3;
        public const int MIXERLINE_TARGETTYPE_UNDEFINED = 0;
        public const int MIXERLINE_TARGETTYPE_WAVEIN = 2;
        public const int MIXERLINE_TARGETTYPE_WAVEOUT = 1;
        public const int MIXERR_BASE = 1024;
        public const int MIXERR_INVALCONTROL = (MIXERR_BASE + 1);
        public const int MIXERR_INVALLINE = (MIXERR_BASE + 0);
        public const int MIXERR_INVALVALUE = (MIXERR_BASE + 2);
        public const int MIXERR_LASTERROR = (MIXERR_BASE + 2);
        public const int MIXER_GETCONTROLDETAILSF_LISTTEXT = 0x1;
        public const int MIXER_GETCONTROLDETAILSF_QUERYMASK = 0xF;
        public const int MIXER_GETCONTROLDETAILSF_VALUE = 0x0;
        public const int MIXER_GETLINECONTROLSF_ALL = 0x0;
        public const int MIXER_GETLINECONTROLSF_ONEBYID = 0x1;
        public const int MIXER_GETLINECONTROLSF_ONEBYTYPE = 0x2;
        public const int MIXER_GETLINECONTROLSF_QUERYMASK = 0xF;
        public const int MIXER_GETLINEINFOF_COMPONENTTYPE = 0x3;
        public const int MIXER_GETLINEINFOF_DESTINATION = 0x0;
        public const int MIXER_GETLINEINFOF_LINEID = 0x2;
        public const int MIXER_GETLINEINFOF_QUERYMASK = 0xF;
        public const int MIXER_GETLINEINFOF_SOURCE = 0x1;
        public const int MIXER_GETLINEINFOF_TARGETTYPE = 0x4;
        public const int MIXER_LONG_NAME_CHARS = 64;
        public const int MIXER_OBJECTF_AUX = 0x50000000;
        public const int MIXER_OBJECTF_HANDLE = unchecked((int)0x80000000);
        public const int MIXER_OBJECTF_HMIDIIN = (MIXER_OBJECTF_HANDLE | MIXER_OBJECTF_MIDIIN);
        public const int MIXER_OBJECTF_HMIDIOUT = (MIXER_OBJECTF_HANDLE | MIXER_OBJECTF_MIDIOUT);
        public const int MIXER_OBJECTF_HMIXER = (MIXER_OBJECTF_HANDLE | MIXER_OBJECTF_MIXER);
        public const int MIXER_OBJECTF_HWAVEIN = (MIXER_OBJECTF_HANDLE | MIXER_OBJECTF_WAVEIN);
        public const int MIXER_OBJECTF_HWAVEOUT = (MIXER_OBJECTF_HANDLE | MIXER_OBJECTF_WAVEOUT);
        public const int MIXER_OBJECTF_MIDIIN = 0x40000000;
        public const int MIXER_OBJECTF_MIDIOUT = 0x30000000;
        public const int MIXER_OBJECTF_MIXER = 0x0;
        public const int MIXER_OBJECTF_WAVEIN = 0x20000000;
        public const int MIXER_OBJECTF_WAVEOUT = 0x10000000;
        public const int MIXER_SETCONTROLDETAILSF_CUSTOM = 0x1;
        public const int MIXER_SETCONTROLDETAILSF_QUERYMASK = 0xF;
        public const int MIXER_SETCONTROLDETAILSF_VALUE = 0x0;
        public const int MIXER_SHORT_NAME_CHARS = 16;
        public const int MMIOERR_BASE = 256;
        public const int MMIOERR_CANNOTCLOSE = (MMIOERR_BASE + 4);
        public const int MMIOERR_CANNOTEXPAND = (MMIOERR_BASE + 8);
        public const int MMIOERR_CANNOTOPEN = (MMIOERR_BASE + 3);
        public const int MMIOERR_CANNOTREAD = (MMIOERR_BASE + 5);
        public const int MMIOERR_CANNOTSEEK = (MMIOERR_BASE + 7);
        public const int MMIOERR_CANNOTWRITE = (MMIOERR_BASE + 6);
        public const int MMIOERR_CHUNKNOTFOUND = (MMIOERR_BASE + 9);
        public const int MMIOERR_FILENOTFOUND = (MMIOERR_BASE + 1);
        public const int MMIOERR_OUTOFMEMORY = (MMIOERR_BASE + 2);
        public const int MMIOERR_UNBUFFERED = (MMIOERR_BASE + 10);
        public const int MMIOM_CLOSE = 4;
        public const int MMIOM_OPEN = 3;
        public const int MMIOM_READ = MMIO_READ;
        public const int MMIOM_RENAME = 6;
        public const int MMIOM_SEEK = 2;
        public const int MMIOM_USER = 0x8000;
        public const int MMIOM_WRITE = MMIO_WRITE;
        public const int MMIOM_WRITEFLUSH = 5;
        public const int MMIO_ALLOCBUF = 0x10000;
        public const int MMIO_COMPAT = 0x0;
        public const int MMIO_CREATE = 0x1000;
        public const int MMIO_CREATELIST = 0x40;
        public const int MMIO_CREATERIFF = 0x20;
        public const int MMIO_DEFAULTBUFFER = 8192;
        public const int MMIO_DELETE = 0x200;
        public const int MMIO_DENYNONE = 0x40;
        public const int MMIO_DENYREAD = 0x30;
        public const int MMIO_DENYWRITE = 0x20;
        public const int MMIO_DIRTY = 0x10000000;
        public const int MMIO_EMPTYBUF = 0x10;
        public const int MMIO_EXCLUSIVE = 0x10;
        public const int MMIO_EXIST = 0x4000;
        public const int MMIO_FHOPEN = 0x10;
        public const int MMIO_FINDCHUNK = 0x10;
        public const int MMIO_FINDLIST = 0x40;
        public const int MMIO_FINDPROC = 0x40000;
        public const int MMIO_FINDRIFF = 0x20;
        public const int MMIO_GETTEMP = 0x20000;
        public const int MMIO_INSTALLPROC = 0x10000;
        public const int MMIO_OPEN_VALID = 0x3FFFF;
        public const int MMIO_PARSE = 0x100;
        public const int MMIO_PUBLICPROC = 0x10000000;
        public const int MMIO_READ = 0x0;
        public const int MMIO_READWRITE = 0x2;
        public const int MMIO_REMOVEPROC = 0x20000;
        public const int MMIO_RWMODE = 0x3;
        public const int MMIO_SHAREMODE = 0x70;
        public const int MMIO_TOUPPER = 0x10;
        public const int MMIO_UNICODEPROC = 0x1000000;
        public const int MMIO_VALIDPROC = 0x11070000;
        public const int MMIO_WRITE = 0x1;
        public const int MMSYSERR_ALLOCATED = (MMSYSERR_BASE + 4);
        public const int MMSYSERR_BADDEVICEID = (MMSYSERR_BASE + 2);
        public const int MMSYSERR_BADERRNUM = (MMSYSERR_BASE + 9);
        public const int MMSYSERR_BASE = 0;
        public const int MMSYSERR_ERROR = (MMSYSERR_BASE + 1);
        public const int MMSYSERR_HANDLEBUSY = (MMSYSERR_BASE + 12);
        public const int MMSYSERR_INVALFLAG = (MMSYSERR_BASE + 10);
        public const int MMSYSERR_INVALHANDLE = (MMSYSERR_BASE + 5);
        public const int MMSYSERR_INVALIDALIAS = (MMSYSERR_BASE + 13);
        public const int MMSYSERR_INVALPARAM = (MMSYSERR_BASE + 11);
        public const int MMSYSERR_LASTERROR = (MMSYSERR_BASE + 13);
        public const int MMSYSERR_NODRIVER = (MMSYSERR_BASE + 6);
        public const int MMSYSERR_NOERROR = 0;
        public const int MMSYSERR_NOMEM = (MMSYSERR_BASE + 7);
        public const int MMSYSERR_NOTENABLED = (MMSYSERR_BASE + 3);
        public const int MMSYSERR_NOTSUPPORTED = (MMSYSERR_BASE + 8);
        public const int MM_ADLIB = 9;
        public const int MM_JOY1BUTTONDOWN = 0x3B5;
        public const int MM_JOY1BUTTONUP = 0x3B7;
        public const int MM_JOY1MOVE = 0x3A0;
        public const int MM_JOY1ZMOVE = 0x3A2;
        public const int MM_JOY2BUTTONDOWN = 0x3B6;
        public const int MM_JOY2BUTTONUP = 0x3B8;
        public const int MM_JOY2MOVE = 0x3A1;
        public const int MM_JOY2ZMOVE = 0x3A3;
        public const int MM_MCINOTIFY = 0x3B9;
        public const int MM_MCISIGNAL = 0x3CB;
        public const int MM_MCISYSTEM_STRING = 0x3CA;
        public const int MM_MICROSOFT = 1;
        public const int MM_MIDI_MAPPER = 1;
        public const int MM_MIM_CLOSE = 0x3C2;
        public const int MM_MIM_DATA = 0x3C3;
        public const int MM_MIM_ERROR = 0x3C5;
        public const int MM_MIM_LONGDATA = 0x3C4;
        public const int MM_MIM_LONGERROR = 0x3C6;
        public const int MM_MIM_MOREDATA = 0x3CC;
        public const int MM_MIM_OPEN = 0x3C1;
        public const int MM_MOM_CLOSE = 0x3C8;
        public const int MM_MOM_DONE = 0x3C9;
        public const int MM_MOM_OPEN = 0x3C7;
        public const int MM_MOM_POSITIONCB = 0x3CA;
        public const int MM_MPU401_MIDIIN = 11;
        public const int MM_MPU401_MIDIOUT = 10;
        public const int MM_PC_JOYSTICK = 12;
        public const int MM_SNDBLST_MIDIIN = 4;
        public const int MM_SNDBLST_MIDIOUT = 3;
        public const int MM_SNDBLST_SYNTH = 5;
        public const int MM_SNDBLST_WAVEIN = 7;
        public const int MM_SNDBLST_WAVEOUT = 6;
        public const int MM_WAVE_MAPPER = 2;
        public const int MM_WIM_CLOSE = 0x3BF;
        public const int MM_WIM_DATA = 0x3C0;
        public const int MM_WIM_OPEN = 0x3BE;
        public const int MM_WOM_CLOSE = 0x3BC;
        public const int MM_WOM_DONE = 0x3BD;
        public const int MM_WOM_OPEN = 0x3BB;
        public const int MOD_FMSYNTH = 4;
        public const int MOD_MAPPER = 5;
        public const int MOD_MIDIPORT = 1;
        public const int MOD_SQSYNTH = 3;
        public const int MOD_SYNTH = 2;
        public const int MOM_CLOSE = MM_MOM_CLOSE;
        public const int MOM_DONE = MM_MOM_DONE;
        public const int MOM_OPEN = MM_MOM_OPEN;
        public const int MOM_POSITIONCB = MM_MOM_POSITIONCB;
        public const int NEWTRANSPARENT = 3;
        public const int QUERYROPSUPPORT = 40;
        public const int SEEK_CUR = 1;
        public const int SEEK_END = 2;
        public const int SEEK_SET = 0;
        public const int SELECTDIB = 41;
        public const int SND_ALIAS = 0x10000;
        public const int SND_ALIAS_ID = 0x110000;
        public const int SND_ALIAS_START = 0;
        public const int SND_APPLICATION = 0x80;
        public const int SND_ASYNC = 0x1;
        public const int SND_FILENAME = 0x20000;
        public const int SND_LOOP = 0x8;
        public const int SND_MEMORY = 0x4;
        public const int SND_NODEFAULT = 0x2;
        public const int SND_NOSTOP = 0x10;
        public const int SND_NOWAIT = 0x2000;
        public const int SND_PURGE = 0x40;
        public const int SND_RESERVED = unchecked((int)0xFF000000);
        public const int SND_RESOURCE = 0x40004;
        public const int SND_SYNC = 0x0;
        public const int SND_TYPE_MASK = 0x170007;
        public const int SND_VALID = 0x1F;
        public const int SND_VALIDFLAGS = 0x17201F;
        public const int TIMERR_BASE = 96;
        public const int TIMERR_NOCANDO = (TIMERR_BASE + 1);
        public const int TIMERR_NOERROR = (0);
        public const int TIMERR_STRUCT = (TIMERR_BASE + 33);
        public const int TIME_BYTES = 0x4;
        public const int TIME_MIDI = 0x10;
        public const int TIME_MS = 0x1;
        public const int TIME_ONESHOT = 0;
        public const int TIME_PERIODIC = 1;
        public const int TIME_SAMPLES = 0x2;
        public const int TIME_SMPTE = 0x8;
        public const int WAVECAPS_LRVOLUME = 0x8;
        public const int WAVECAPS_PITCH = 0x1;
        public const int WAVECAPS_PLAYBACKRATE = 0x2;
        public const int WAVECAPS_SYNC = 0x10;
        public const int WAVECAPS_VOLUME = 0x4;
        public const int WAVERR_BADFORMAT = (WAVERR_BASE + 0);
        public const int WAVERR_BASE = 32;
        public const int WAVERR_LASTERROR = (WAVERR_BASE + 3);
        public const int WAVERR_STILLPLAYING = (WAVERR_BASE + 1);
        public const int WAVERR_SYNC = (WAVERR_BASE + 3);
        public const int WAVERR_UNPREPARED = (WAVERR_BASE + 2);
        public const int WAVE_ALLOWSYNC = 0x2;
        public const int WAVE_FORMAT_1M08 = 0x1;
        public const int WAVE_FORMAT_1M16 = 0x4;
        public const int WAVE_FORMAT_1S08 = 0x2;
        public const int WAVE_FORMAT_1S16 = 0x8;
        public const int WAVE_FORMAT_2M08 = 0x10;
        public const int WAVE_FORMAT_2M16 = 0x40;
        public const int WAVE_FORMAT_2S08 = 0x20;
        public const int WAVE_FORMAT_2S16 = 0x80;
        public const int WAVE_FORMAT_4M08 = 0x100;
        public const int WAVE_FORMAT_4M16 = 0x400;
        public const int WAVE_FORMAT_4S08 = 0x200;
        public const int WAVE_FORMAT_4S16 = 0x800;
        public const int WAVE_FORMAT_DIRECT = 0x8;
        public const int WAVE_FORMAT_DIRECT_QUERY = (WAVE_FORMAT_QUERY | WAVE_FORMAT_DIRECT);
        public const int WAVE_FORMAT_PCM = 1;
        public const int WAVE_FORMAT_QUERY = 0x1;
        public const int WAVE_INVALIDFORMAT = 0x0;
        public const int WAVE_MAPPED = 0x4;
        public const int WAVE_MAPPER = -1;
        public const int WAVE_VALID = 0x3;
        public const int WHDR_BEGINLOOP = 0x4;
        public const int WHDR_DONE = 0x1;
        public const int WHDR_ENDLOOP = 0x8;
        public const int WHDR_INQUEUE = 0x10;
        public const int WHDR_PREPARED = 0x2;
        public const int WHDR_VALID = 0x1F;
        public const int WIM_CLOSE = MM_WIM_CLOSE;
        public const int WIM_DATA = MM_WIM_DATA;
        public const int WIM_OPEN = MM_WIM_OPEN;
        public const int WOM_CLOSE = MM_WOM_CLOSE;
        public const int WOM_DONE = MM_WOM_DONE;
        public const int WOM_OPEN = MM_WOM_OPEN;

        public const int ACCESS_ALLOWED_ACE_TYPE = 0x0;
        public const int ACCESS_DENIED_ACE_TYPE = 0x1;
        public const int ACCESS_SYSTEM_SECURITY = 0x1000000;
        public const int ACL_REVISION = (2);
        public const int ACL_REVISION1 = (1);
        public const int ACL_REVISION2 = (2);
        public const int AC_LINE_BACKUP_POWER = 0x2;
        public const int AC_LINE_OFFLINE = 0x0;
        public const int AC_LINE_ONLINE = 0x1;
        public const int AC_LINE_UNKNOWN = 0xFF;
        public const int APPLICATION_ERROR_MASK = 0x20000000;
        public const int AclRevisionInformation = 1;
        public const int AclSizeInformation = 2;
        public const int BACKGROUND_BLUE = 0x10;
        public const int BACKGROUND_GREEN = 0x20;
        public const int BACKGROUND_INTENSITY = 0x80;
        public const int BACKGROUND_RED = 0x40;
        public const int BACKUP_ALTERNATE_DATA = 0x4;
        public const int BACKUP_DATA = 0x1;
        public const int BACKUP_EA_DATA = 0x2;
        public const int BACKUP_LINK = 0x5;
        public const int BACKUP_SECURITY_DATA = 0x3;
        public const int BATTERY_FLAG_CHARGING = 0x8;
        public const int BATTERY_FLAG_CRITICAL = 0x4;
        public const int BATTERY_FLAG_HIGH = 0x1;
        public const int BATTERY_FLAG_LOW = 0x2;
        public const int BATTERY_FLAG_NO_BATTERY = 0x80;
        public const int BATTERY_FLAG_UNKNOWN = 0xFF;
        public const int BATTERY_LIFE_UNKNOWN = 0xFFFF;
        public const int BATTERY_PERCENTAGE_UNKNOWN = 0xFF;
        public const int BAUD_075 = 0x1;
        public const int BAUD_110 = 0x2;
        public const int BAUD_115200 = 0x20000;
        public const int BAUD_1200 = 0x40;
        public const int BAUD_128K = 0x10000;
        public const int BAUD_134_5 = 0x4;
        public const int BAUD_14400 = 0x1000;
        public const int BAUD_150 = 0x8;
        public const int BAUD_1800 = 0x80;
        public const int BAUD_19200 = 0x2000;
        public const int BAUD_2400 = 0x100;
        public const int BAUD_300 = 0x10;
        public const int BAUD_38400 = 0x4000;
        public const int BAUD_4800 = 0x200;
        public const int BAUD_56K = 0x8000;
        public const int BAUD_57600 = 0x40000;
        public const int BAUD_600 = 0x20;
        public const int BAUD_7200 = 0x400;
        public const int BAUD_9600 = 0x800;
        public const int BAUD_USER = 0x10000000;
        public const int C1_ALPHA = 0x100;
        public const int C1_BLANK = 0x40;
        public const int C1_CNTRL = 0x20;
        public const int C1_DIGIT = 0x4;
        public const int C1_LOWER = 0x2;
        public const int C1_PUNCT = 0x10;
        public const int C1_SPACE = 0x8;
        public const int C1_UPPER = 0x1;
        public const int C1_XDIGIT = 0x80;
        public const int C2_ARABICNUMBER = 0x6;
        public const int C2_BLOCKSEPARATOR = 0x8;
        public const int C2_COMMONSEPARATOR = 0x7;
        public const int C2_EUROPENUMBER = 0x3;
        public const int C2_EUROPESEPARATOR = 0x4;
        public const int C2_EUROPETERMINATOR = 0x5;
        public const int C2_LEFTTORIGHT = 0x1;
        public const int C2_NOTAPPLICABLE = 0x0;
        public const int C2_OTHERNEUTRAL = 0xB;
        public const int C2_RIGHTTOLEFT = 0x2;
        public const int C2_SEGMENTSEPARATOR = 0x9;
        public const int C2_WHITESPACE = 0xA;
        public const int C3_DIACRITIC = 0x2;
        public const int C3_NONSPACING = 0x1;
        public const int C3_NOTAPPLICABLE = 0x0;
        public const int C3_SYMBOL = 0x8;
        public const int C3_VOWELMARK = 0x4;
        public const int CAL_GREGORIAN = 1;
        public const int CAL_GREGORIAN_US = 2;
        public const int CAL_ICALINTVALUE = 0x1;
        public const int CAL_IYEAROFFSETRANGE = 0x3;
        public const int CAL_JAPAN = 3;
        public const int CAL_KOREA = 5;
        public const int CAL_SABBREVDAYNAME1 = 0xE;
        public const int CAL_SABBREVDAYNAME2 = 0xF;
        public const int CAL_SABBREVDAYNAME3 = 0x10;
        public const int CAL_SABBREVDAYNAME4 = 0x11;
        public const int CAL_SABBREVDAYNAME5 = 0x12;
        public const int CAL_SABBREVDAYNAME6 = 0x13;
        public const int CAL_SABBREVDAYNAME7 = 0x14;
        public const int CAL_SABBREVMONTHNAME1 = 0x22;
        public const int CAL_SABBREVMONTHNAME10 = 0x2B;
        public const int CAL_SABBREVMONTHNAME11 = 0x2C;
        public const int CAL_SABBREVMONTHNAME12 = 0x2D;
        public const int CAL_SABBREVMONTHNAME13 = 0x2E;
        public const int CAL_SABBREVMONTHNAME2 = 0x23;
        public const int CAL_SABBREVMONTHNAME3 = 0x24;
        public const int CAL_SABBREVMONTHNAME4 = 0x25;
        public const int CAL_SABBREVMONTHNAME5 = 0x26;
        public const int CAL_SABBREVMONTHNAME6 = 0x27;
        public const int CAL_SABBREVMONTHNAME7 = 0x28;
        public const int CAL_SABBREVMONTHNAME8 = 0x29;
        public const int CAL_SABBREVMONTHNAME9 = 0x2A;
        public const int CAL_SCALNAME = 0x2;
        public const int CAL_SDAYNAME1 = 0x7;
        public const int CAL_SDAYNAME2 = 0x8;
        public const int CAL_SDAYNAME3 = 0x9;
        public const int CAL_SDAYNAME4 = 0xA;
        public const int CAL_SDAYNAME5 = 0xB;
        public const int CAL_SDAYNAME6 = 0xC;
        public const int CAL_SDAYNAME7 = 0xD;
        public const int CAL_SERASTRING = 0x4;
        public const int CAL_SLONGDATE = 0x6;
        public const int CAL_SMONTHNAME1 = 0x15;
        public const int CAL_SMONTHNAME10 = 0x1E;
        public const int CAL_SMONTHNAME11 = 0x1F;
        public const int CAL_SMONTHNAME12 = 0x20;
        public const int CAL_SMONTHNAME13 = 0x21;
        public const int CAL_SMONTHNAME2 = 0x16;
        public const int CAL_SMONTHNAME3 = 0x17;
        public const int CAL_SMONTHNAME4 = 0x18;
        public const int CAL_SMONTHNAME5 = 0x19;
        public const int CAL_SMONTHNAME6 = 0x1A;
        public const int CAL_SMONTHNAME7 = 0x1B;
        public const int CAL_SMONTHNAME8 = 0x1C;
        public const int CAL_SMONTHNAME9 = 0x1D;
        public const int CAL_SSHORTDATE = 0x5;
        public const int CAL_TAIWAN = 4;
        public const int CAPSLOCK_ON = 0x80;
        public const int CBR_110 = 110;
        public const int CBR_115200 = 115200;
        public const int CBR_1200 = 1200;
        public const int CBR_128000 = 128000;
        public const int CBR_14400 = 14400;
        public const int CBR_19200 = 19200;
        public const int CBR_2400 = 2400;
        public const int CBR_256000 = 256000;
        public const int CBR_300 = 300;
        public const int CBR_38400 = 38400;
        public const int CBR_4800 = 4800;
        public const int CBR_56000 = 56000;
        public const int CBR_57600 = 57600;
        public const int CBR_600 = 600;
        public const int CBR_9600 = 9600;
        public const int CE_BREAK = 0x10;
        public const int CE_DNS = 0x800;
        public const int CE_FRAME = 0x8;
        public const int CE_IOE = 0x400;
        public const int CE_MODE = 0x8000;
        public const int CE_OOP = 0x1000;
        public const int CE_OVERRUN = 0x2;
        public const int CE_PTO = 0x200;
        public const int CE_RXOVER = 0x1;
        public const int CE_RXPARITY = 0x4;
        public const int CE_TXFULL = 0x100;
        public const int CLRBREAK = 9;
        public const int CLRDTR = 6;
        public const int CLRRTS = 4;
        public const int CONSOLE_TEXTMODE_BUFFER = 1;
        public const int CONTAINER_INHERIT_ACE = 0x2;
        public const int CP_ACP = 0;
        public const int CP_OEMCP = 1;
        public const int CREATE_ALWAYS = 2;
        public const int CREATE_NEW = 1;
        public const int CREATE_NEW_CONSOLE = 0x10;
        public const int CREATE_NEW_PROCESS_GROUP = 0x200;
        public const int CREATE_NO_WINDOW = 0x8000000;
        public const int CREATE_PROCESS_DEBUG_EVENT = 3;
        public const int CREATE_SUSPENDED = 0x4;
        public const int CREATE_THREAD_DEBUG_EVENT = 2;
        public const int CTRL_BREAK_EVENT = 1;
        public const int CTRL_CLOSE_EVENT = 2;
        public const int CTRL_C_EVENT = 0;
        public const int CTRL_LOGOFF_EVENT = 5;
        public const int CTRL_SHUTDOWN_EVENT = 6;
        public const int CTRY_AUSTRALIA = 61;
        public const int CTRY_AUSTRIA = 43;
        public const int CTRY_BELGIUM = 32;
        public const int CTRY_BRAZIL = 55;
        public const int CTRY_CANADA = 2;
        public const int CTRY_DEFAULT = 0;
        public const int CTRY_DENMARK = 45;
        public const int CTRY_FINLAND = 358;
        public const int CTRY_FRANCE = 33;
        public const int CTRY_GERMANY = 49;
        public const int CTRY_ICELAND = 354;
        public const int CTRY_IRELAND = 353;
        public const int CTRY_ITALY = 39;
        public const int CTRY_JAPAN = 81;
        public const int CTRY_MEXICO = 52;
        public const int CTRY_NETHERLANDS = 31;
        public const int CTRY_NEW_ZEALAND = 64;
        public const int CTRY_NORWAY = 47;
        public const int CTRY_PORTUGAL = 351;
        public const int CTRY_PRCHINA = 86;
        public const int CTRY_SOUTH_KOREA = 82;
        public const int CTRY_SPAIN = 34;
        public const int CTRY_SWEDEN = 46;
        public const int CTRY_SWITZERLAND = 41;
        public const int CTRY_TAIWAN = 886;
        public const int CTRY_UNITED_KINGDOM = 44;
        public const int CTRY_UNITED_STATES = 1;
        public const int CT_CTYPE1 = 0x1;
        public const int CT_CTYPE2 = 0x2;
        public const int CT_CTYPE3 = 0x4;
        public const int DATABITS_16 = 0x10;
        public const int DATABITS_16X = 0x20;
        public const int DATABITS_5 = 0x1;
        public const int DATABITS_6 = 0x2;
        public const int DATABITS_7 = 0x4;
        public const int DATABITS_8 = 0x8;
        public const int DATE_LONGDATE = 0x2;
        public const int DATE_SHORTDATE = 0x1;
        public const int DDD_EXACT_MATCH_ON_REMOVE = 0x4;
        public const int DDD_RAW_TARGET_PATH = 0x1;
        public const int DDD_REMOVE_DEFINITION = 0x2;
        public const int DEBUG_ONLY_THIS_PROCESS = 0x2;
        public const int DEBUG_PROCESS = 0x1;
        public const int DELETE = 0x10000;
        public const int DETACHED_PROCESS = 0x8;
        public const int DFCS_ADJUSTRECT = 0x2000;
        public const int DFCS_BUTTON3STATE = 0x8;
        public const int DFCS_BUTTONCHECK = 0x0;
        public const int DFCS_BUTTONPUSH = 0x10;
        public const int DFCS_BUTTONRADIO = 0x4;
        public const int DFCS_BUTTONRADIOIMAGE = 0x1;
        public const int DFCS_BUTTONRADIOMASK = 0x2;
        public const int DFCS_CAPTIONCLOSE = 0x0;
        public const int DFCS_CAPTIONHELP = 0x4;
        public const int DFCS_CAPTIONMAX = 0x2;
        public const int DFCS_CAPTIONMIN = 0x1;
        public const int DFCS_CAPTIONRESTORE = 0x3;
        public const int DFCS_CHECKED = 0x400;
        public const int DFCS_FLAT = 0x4000;
        public const int DFCS_INACTIVE = 0x100;
        public const int DFCS_MENUARROW = 0x0;
        public const int DFCS_MENUARROWRIGHT = 0x4;
        public const int DFCS_MENUBULLET = 0x2;
        public const int DFCS_MENUCHECK = 0x1;
        public const int DFCS_MONO = 0x8000;
        public const int DFCS_PUSHED = 0x200;
        public const int DFCS_SCROLLCOMBOBOX = 0x5;
        public const int DFCS_SCROLLDOWN = 0x1;
        public const int DFCS_SCROLLLEFT = 0x2;
        public const int DFCS_SCROLLRIGHT = 0x3;
        public const int DFCS_SCROLLSIZEGRIP = 0x8;
        public const int DFCS_SCROLLSIZEGRIPRIGHT = 0x10;
        public const int DFCS_SCROLLUP = 0x0;
        public const int DFC_BUTTON = 4;
        public const int DFC_CAPTION = 1;
        public const int DFC_MENU = 2;
        public const int DFC_SCROLL = 3;
        public const int DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x224;
        public const int DOMAIN_ALIAS_RID_ADMINS = 0x220;
        public const int DOMAIN_ALIAS_RID_BACKUP_OPS = 0x227;
        public const int DOMAIN_ALIAS_RID_GUESTS = 0x222;
        public const int DOMAIN_ALIAS_RID_POWER_USERS = 0x223;
        public const int DOMAIN_ALIAS_RID_PRINT_OPS = 0x226;
        public const int DOMAIN_ALIAS_RID_REPLICATOR = 0x228;
        public const int DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x225;
        public const int DOMAIN_ALIAS_RID_USERS = 0x221;
        public const int DOMAIN_GROUP_RID_ADMINS = 0x200;
        public const int DOMAIN_GROUP_RID_GUESTS = 0x202;
        public const int DOMAIN_GROUP_RID_USERS = 0x201;
        public const int DOMAIN_USER_RID_ADMIN = 0x1F4;
        public const int DOMAIN_USER_RID_GUEST = 0x1F5;
        public const int DONT_RESOLVE_DLL_REFERENCES = 0x1;
        public const int DOUBLE_CLICK = 0x2;
        public const int DRIVE_CDROM = 5;
        public const int DRIVE_FIXED = 3;
        public const int DRIVE_RAMDISK = 6;
        public const int DRIVE_REMOTE = 4;
        public const int DRIVE_REMOVABLE = 2;
        public const int DTR_CONTROL_DISABLE = 0x0;
        public const int DTR_CONTROL_ENABLE = 0x1;
        public const int DTR_CONTROL_HANDSHAKE = 0x2;
        public const int DUPLICATE_CLOSE_SOURCE = 0x1;
        public const int DUPLICATE_SAME_ACCESS = 0x2;
        public const int ENABLE_ECHO_INPUT = 0x4;
        public const int ENABLE_LINE_INPUT = 0x2;
        public const int ENABLE_MOUSE_INPUT = 0x10;
        public const int ENABLE_PROCESSED_INPUT = 0x1;
        public const int ENABLE_PROCESSED_OUTPUT = 0x1;
        public const int ENABLE_WINDOW_INPUT = 0x8;
        public const int ENABLE_WRAP_AT_EOL_OUTPUT = 0x2;
        public const int ENHANCED_KEY = 0x100;
        public const int ENUM_ALL_CALENDARS = 0xFFFF;
        public const int ERROR_SEVERITY_ERROR = unchecked((int)0xC0000000);
        public const int ERROR_SEVERITY_INFORMATIONAL = 0x40000000;
        public const int ERROR_SEVERITY_SUCCESS = 0x0;
        public const int ERROR_SEVERITY_WARNING = unchecked((int)0x80000000);
        public const int EVENPARITY = 2;
        public const int EV_BREAK = 0x40;
        public const int EV_CTS = 0x8;
        public const int EV_DSR = 0x10;
        public const int EV_ERR = 0x80;
        public const int EV_EVENT1 = 0x800;
        public const int EV_EVENT2 = 0x1000;
        public const int EV_PERR = 0x200;
        public const int EV_RING = 0x100;
        public const int EV_RLSD = 0x20;
        public const int EV_RX80FULL = 0x400;
        public const int EV_RXCHAR = 0x1;
        public const int EV_RXFLAG = 0x2;
        public const int EV_TXEMPTY = 0x4;
        public const int EXCEPTION_CONTINUE_EXECUTION = -1;
        public const int EXCEPTION_CONTINUE_SEARCH = 0;
        public const int EXCEPTION_DEBUG_EVENT = 1;
        public const int EXCEPTION_EXECUTE_HANDLER = 1;
        public const int EXCEPTION_MAXIMUM_PARAMETERS = 15;
        public const int EXIT_PROCESS_DEBUG_EVENT = 5;
        public const int EXIT_THREAD_DEBUG_EVENT = 4;
        public const int FAILED_ACCESS_ACE_FLAG = 0x80;
        public const int FILE_ADD_FILE = (0x2);
        public const int FILE_ADD_SUBDIRECTORY = (0x4);
        public const int FILE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF);
        public const int FILE_APPEND_DATA = (0x4);
        public const int FILE_ATTRIBUTE_ARCHIVE = 0x20;
        public const int FILE_ATTRIBUTE_COMPRESSED = 0x800;
        public const int FILE_ATTRIBUTE_DIRECTORY = 0x10;
        public const int FILE_ATTRIBUTE_HIDDEN = 0x2;
        public const int FILE_ATTRIBUTE_NORMAL = 0x80;
        public const int FILE_ATTRIBUTE_READONLY = 0x1;
        public const int FILE_ATTRIBUTE_SYSTEM = 0x4;
        public const int FILE_ATTRIBUTE_TEMPORARY = 0x100;
        public const int FILE_BEGIN = 0;
        public const int FILE_CASE_PRESERVED_NAMES = 0x2;
        public const int FILE_CASE_SENSITIVE_SEARCH = 0x1;
        public const int FILE_CREATE_PIPE_INSTANCE = (0x4);
        public const int FILE_CURRENT = 1;
        public const int FILE_DELETE_CHILD = (0x40);
        public const int FILE_END = 2;
        public const int FILE_EXECUTE = (0x20);
        public const int FILE_FILE_COMPRESSION = 0x10;
        public const int FILE_FLAG_BACKUP_SEMANTICS = 0x2000000;
        public const int FILE_FLAG_DELETE_ON_CLOSE = 0x4000000;
        public const int FILE_FLAG_NO_BUFFERING = 0x20000000;
        public const int FILE_FLAG_OVERLAPPED = 0x40000000;
        public const int FILE_FLAG_POSIX_SEMANTICS = 0x1000000;
        public const int FILE_FLAG_RANDOM_ACCESS = 0x10000000;
        public const int FILE_FLAG_SEQUENTIAL_SCAN = 0x8000000;
        public const int FILE_FLAG_WRITE_THROUGH = unchecked((int)0x80000000);
        public const int FILE_GENERIC_EXECUTE = (STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE);
        public const int FILE_GENERIC_READ = (STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE);
        public const int FILE_GENERIC_WRITE = (STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE);
        public const int FILE_LIST_DIRECTORY = (0x1);
        public const int FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS;
        public const int FILE_MAP_COPY = SECTION_QUERY;
        public const int FILE_MAP_READ = SECTION_MAP_READ;
        public const int FILE_MAP_WRITE = SECTION_MAP_WRITE;
        public const int FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x4;
        public const int FILE_NOTIFY_CHANGE_DIR_NAME = 0x2;
        public const int FILE_NOTIFY_CHANGE_FILE_NAME = 0x1;
        public const int FILE_NOTIFY_CHANGE_LAST_WRITE = 0x10;
        public const int FILE_NOTIFY_CHANGE_SECURITY = 0x100;
        public const int FILE_NOTIFY_CHANGE_SIZE = 0x8;
        public const int FILE_PERSISTENT_ACLS = 0x8;
        public const int FILE_READ_ATTRIBUTES = (0x80);
        public const int FILE_READ_DATA = (0x1);
        public const int FILE_READ_EA = (0x8);
        public const int FILE_READ_PROPERTIES = FILE_READ_EA;
        public const int FILE_SHARE_READ = 0x1;
        public const int FILE_SHARE_WRITE = 0x2;
        public const int FILE_TRAVERSE = (0x20);
        public const int FILE_TYPE_CHAR = 0x2;
        public const int FILE_TYPE_DISK = 0x1;
        public const int FILE_TYPE_PIPE = 0x3;
        public const int FILE_TYPE_REMOTE = 0x8000;
        public const int FILE_TYPE_UNKNOWN = 0x0;
        public const int FILE_UNICODE_ON_DISK = 0x4;
        public const int FILE_VOLUME_IS_COMPRESSED = 0x8000;
        public const int FILE_WRITE_ATTRIBUTES = (0x100);
        public const int FILE_WRITE_DATA = (0x2);
        public const int FILE_WRITE_EA = (0x10);
        public const int FILE_WRITE_PROPERTIES = FILE_WRITE_EA;
        public const int FOCUS_EVENT = 0x10;
        public const int FOREGROUND_BLUE = 0x1;
        public const int FOREGROUND_GREEN = 0x2;
        public const int FOREGROUND_INTENSITY = 0x8;
        public const int FOREGROUND_RED = 0x4;
        public const int FORMAT_MESSAGE_ALLOCATE_BUFFER = 0x100;
        public const int FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x2000;
        public const int FORMAT_MESSAGE_FROM_HMODULE = 0x800;
        public const int FORMAT_MESSAGE_FROM_STRING = 0x400;
        public const int FORMAT_MESSAGE_FROM_SYSTEM = 0x1000;
        public const int FORMAT_MESSAGE_IGNORE_INSERTS = 0x200;
        public const int FORMAT_MESSAGE_MAX_WIDTH_MASK = 0xFF;
        public const int FROM_LEFT_1ST_BUTTON_PRESSED = 0x1;
        public const int FROM_LEFT_2ND_BUTTON_PRESSED = 0x4;
        public const int FROM_LEFT_3RD_BUTTON_PRESSED = 0x8;
        public const int FROM_LEFT_4TH_BUTTON_PRESSED = 0x10;
        public const int FS_CASE_IS_PRESERVED = FILE_CASE_PRESERVED_NAMES;
        public const int FS_CASE_SENSITIVE = FILE_CASE_SENSITIVE_SEARCH;
        public const int FS_PERSISTENT_ACLS = FILE_PERSISTENT_ACLS;
        public const int FS_UNICODE_STORED_ON_DISK = FILE_UNICODE_ON_DISK;
        public const int GENERIC_ALL = 0x10000000;
        public const int GENERIC_EXECUTE = 0x20000000;
        public const int GENERIC_READ = unchecked((int)0x80000000);
        public const int GENERIC_WRITE = 0x40000000;
        public const int GET_TAPE_DRIVE_INFORMATION = 1;
        public const int GET_TAPE_MEDIA_INFORMATION = 0;
        public const int GHND = (GMEM_MOVEABLE | GMEM_ZEROINIT);
        public const int GMEM_DDESHARE = 0x2000;
        public const int GMEM_DISCARDABLE = 0x100;
        public const int GMEM_DISCARDED = 0x4000;
        public const int GMEM_FIXED = 0x0;
        public const int GMEM_INVALID_HANDLE = 0x8000;
        public const int GMEM_LOCKCOUNT = 0xFF;
        public const int GMEM_LOWER = GMEM_NOT_BANKED;
        public const int GMEM_MODIFY = 0x80;
        public const int GMEM_MOVEABLE = 0x2;
        public const int GMEM_NOCOMPACT = 0x10;
        public const int GMEM_NODISCARD = 0x20;
        public const int GMEM_NOTIFY = 0x4000;
        public const int GMEM_NOT_BANKED = 0x1000;
        public const int GMEM_SHARE = 0x2000;
        public const int GMEM_VALID_FLAGS = 0x7F72;
        public const int GMEM_ZEROINIT = 0x40;
        public const int GPTR = (GMEM_FIXED | GMEM_ZEROINIT);
        public const int HIGH_PRIORITY_CLASS = 0x80;
        public const int HKEY_CLASSES_ROOT = unchecked((int)0x80000000);
        public const int HKEY_CURRENT_CONFIG = unchecked((int)0x80000005);
        public const int HKEY_CURRENT_USER = unchecked((int)0x80000001);
        public const int HKEY_DYN_DATA = unchecked((int)0x80000006);
        public const int HKEY_LOCAL_MACHINE = unchecked((int)0x80000002);
        public const int HKEY_PERFORMANCE_DATA = unchecked((int)0x80000004);
        public const int HKEY_USERS = unchecked((int)0x80000003);
        public const int IDLE_PRIORITY_CLASS = 0x40;
        public const int IE_BADID = (-1);
        public const int IE_BAUDRATE = (-12);
        public const int IE_BYTESIZE = (-11);
        public const int IE_DEFAULT = (-5);
        public const int IE_HARDWARE = (-10);
        public const int IE_MEMORY = (-4);
        public const int IE_NOPEN = (-3);
        public const int IE_OPEN = (-2);
        public const int IGNORE = 0;
        public const int INFINITE = 0xFFFF;
        public const int INHERIT_ONLY_ACE = 0x8;
        public const int IO_COMPLETION_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3);
        public const int IO_COMPLETION_MODIFY_STATE = 0x2;
        public const int KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL | KEY_QUERY_VALUE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY | KEY_CREATE_LINK) & (~SYNCHRONIZE));
        public const int KEY_CREATE_LINK = 0x20;
        public const int KEY_CREATE_SUB_KEY = 0x4;
        public const int KEY_ENUMERATE_SUB_KEYS = 0x8;
        public const int KEY_EVENT = 0x1;
        public const int KEY_EXECUTE = ((KEY_READ) & (~SYNCHRONIZE));
        public const int KEY_NOTIFY = 0x10;
        public const int KEY_QUERY_VALUE = 0x1;
        public const int KEY_READ = ((STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY) & (~SYNCHRONIZE));
        public const int KEY_SET_VALUE = 0x2;
        public const int KEY_WRITE = ((STANDARD_RIGHTS_WRITE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY) & (~SYNCHRONIZE));
        public const int LANG_BULGARIAN = 0x2;
        public const int LANG_CHINESE = 0x4;
        public const int LANG_CROATIAN = 0x1A;
        public const int LANG_CZECH = 0x5;
        public const int LANG_DANISH = 0x6;
        public const int LANG_DUTCH = 0x13;
        public const int LANG_ENGLISH = 0x9;
        public const int LANG_FINNISH = 0xB;
        public const int LANG_FRENCH = 0xC;
        public const int LANG_GERMAN = 0x7;
        public const int LANG_GREEK = 0x8;
        public const int LANG_HUNGARIAN = 0xE;
        public const int LANG_ICELANDIC = 0xF;
        public const int LANG_ITALIAN = 0x10;
        public const int LANG_JAPANESE = 0x11;
        public const int LANG_KOREAN = 0x12;
        public const int LANG_NEUTRAL = 0x0;
        public const int LANG_NORWEGIAN = 0x14;
        public const int LANG_POLISH = 0x15;
        public const int LANG_PORTUGUESE = 0x16;
        public const int LANG_ROMANIAN = 0x18;
        public const int LANG_RUSSIAN = 0x19;
        public const int LANG_SLOVAK = 0x1B;
        public const int LANG_SLOVENIAN = 0x24;
        public const int LANG_SPANISH = 0xA;
        public const int LANG_SWEDISH = 0x1D;
        public const int LANG_TURKISH = 0x1F;
        public const int LCMAP_BYTEREV = 0x800;
        public const int LCMAP_LOWERCASE = 0x100;
        public const int LCMAP_SORTKEY = 0x400;
        public const int LCMAP_UPPERCASE = 0x200;
        public const int LEFT_ALT_PRESSED = 0x2;
        public const int LEFT_CTRL_PRESSED = 0x8;
        public const int LHND = (LMEM_MOVEABLE + LMEM_ZEROINIT);
        public const int LMEM_DISCARDABLE = 0xF00;
        public const int LMEM_DISCARDED = 0x4000;
        public const int LMEM_FIXED = 0x0;
        public const int LMEM_INVALID_HANDLE = 0x8000;
        public const int LMEM_LOCKCOUNT = 0xFF;
        public const int LMEM_MODIFY = 0x80;
        public const int LMEM_MOVEABLE = 0x2;
        public const int LMEM_NOCOMPACT = 0x10;
        public const int LMEM_NODISCARD = 0x20;
        public const int LMEM_VALID_FLAGS = 0xF72;
        public const int LMEM_ZEROINIT = 0x40;
        public const int LNOTIFY_DISCARD = 2;
        public const int LNOTIFY_MOVE = 1;
        public const int LNOTIFY_OUTOFMEM = 0;
        public const int LOAD_DLL_DEBUG_EVENT = 6;
        public const int LOCALE_ICENTURY = 0x24;
        public const int LOCALE_ICOUNTRY = 0x5;
        public const int LOCALE_ICURRDIGITS = 0x19;
        public const int LOCALE_ICURRENCY = 0x1B;
        public const int LOCALE_IDATE = 0x21;
        public const int LOCALE_IDAYLZERO = 0x26;
        public const int LOCALE_IDEFAULTCODEPAGE = 0xB;
        public const int LOCALE_IDEFAULTCOUNTRY = 0xA;
        public const int LOCALE_IDEFAULTLANGUAGE = 0x9;
        public const int LOCALE_IDIGITS = 0x11;
        public const int LOCALE_IINTLCURRDIGITS = 0x1A;
        public const int LOCALE_ILANGUAGE = 0x1;
        public const int LOCALE_ILDATE = 0x22;
        public const int LOCALE_ILZERO = 0x12;
        public const int LOCALE_IMEASURE = 0xD;
        public const int LOCALE_IMONLZERO = 0x27;
        public const int LOCALE_INEGCURR = 0x1C;
        public const int LOCALE_INEGSEPBYSPACE = 0x57;
        public const int LOCALE_INEGSIGNPOSN = 0x53;
        public const int LOCALE_INEGSYMPRECEDES = 0x56;
        public const int LOCALE_IPOSSEPBYSPACE = 0x55;
        public const int LOCALE_IPOSSIGNPOSN = 0x52;
        public const int LOCALE_IPOSSYMPRECEDES = 0x54;
        public const int LOCALE_ITIME = 0x23;
        public const int LOCALE_ITLZERO = 0x25;
        public const int LOCALE_NOUSEROVERRIDE = unchecked((int)0x80000000);
        public const int LOCALE_S1159 = 0x28;
        public const int LOCALE_S2359 = 0x29;
        public const int LOCALE_SABBREVCTRYNAME = 0x7;
        public const int LOCALE_SABBREVDAYNAME1 = 0x31;
        public const int LOCALE_SABBREVDAYNAME2 = 0x32;
        public const int LOCALE_SABBREVDAYNAME3 = 0x33;
        public const int LOCALE_SABBREVDAYNAME4 = 0x34;
        public const int LOCALE_SABBREVDAYNAME5 = 0x35;
        public const int LOCALE_SABBREVDAYNAME6 = 0x36;
        public const int LOCALE_SABBREVDAYNAME7 = 0x37;
        public const int LOCALE_SABBREVLANGNAME = 0x3;
        public const int LOCALE_SABBREVMONTHNAME1 = 0x44;
        public const int LOCALE_SABBREVMONTHNAME10 = 0x4D;
        public const int LOCALE_SABBREVMONTHNAME11 = 0x4E;
        public const int LOCALE_SABBREVMONTHNAME12 = 0x4F;
        public const int LOCALE_SABBREVMONTHNAME13 = 0x100F;
        public const int LOCALE_SABBREVMONTHNAME2 = 0x45;
        public const int LOCALE_SABBREVMONTHNAME3 = 0x46;
        public const int LOCALE_SABBREVMONTHNAME4 = 0x47;
        public const int LOCALE_SABBREVMONTHNAME5 = 0x48;
        public const int LOCALE_SABBREVMONTHNAME6 = 0x49;
        public const int LOCALE_SABBREVMONTHNAME7 = 0x4A;
        public const int LOCALE_SABBREVMONTHNAME8 = 0x4B;
        public const int LOCALE_SABBREVMONTHNAME9 = 0x4C;
        public const int LOCALE_SCOUNTRY = 0x6;
        public const int LOCALE_SCURRENCY = 0x14;
        public const int LOCALE_SDATE = 0x1D;
        public const int LOCALE_SDAYNAME1 = 0x2A;
        public const int LOCALE_SDAYNAME2 = 0x2B;
        public const int LOCALE_SDAYNAME3 = 0x2C;
        public const int LOCALE_SDAYNAME4 = 0x2D;
        public const int LOCALE_SDAYNAME5 = 0x2E;
        public const int LOCALE_SDAYNAME6 = 0x2F;
        public const int LOCALE_SDAYNAME7 = 0x30;
        public const int LOCALE_SDECIMAL = 0xE;
        public const int LOCALE_SENGCOUNTRY = 0x1002;
        public const int LOCALE_SENGLANGUAGE = 0x1001;
        public const int LOCALE_SGROUPING = 0x10;
        public const int LOCALE_SINTLSYMBOL = 0x15;
        public const int LOCALE_SLANGUAGE = 0x2;
        public const int LOCALE_SLIST = 0xC;
        public const int LOCALE_SLONGDATE = 0x20;
        public const int LOCALE_SMONDECIMALSEP = 0x16;
        public const int LOCALE_SMONGROUPING = 0x18;
        public const int LOCALE_SMONTHNAME1 = 0x38;
        public const int LOCALE_SMONTHNAME10 = 0x41;
        public const int LOCALE_SMONTHNAME11 = 0x42;
        public const int LOCALE_SMONTHNAME12 = 0x43;
        public const int LOCALE_SMONTHNAME2 = 0x39;
        public const int LOCALE_SMONTHNAME3 = 0x3A;
        public const int LOCALE_SMONTHNAME4 = 0x3B;
        public const int LOCALE_SMONTHNAME5 = 0x3C;
        public const int LOCALE_SMONTHNAME6 = 0x3D;
        public const int LOCALE_SMONTHNAME7 = 0x3E;
        public const int LOCALE_SMONTHNAME8 = 0x3F;
        public const int LOCALE_SMONTHNAME9 = 0x40;
        public const int LOCALE_SMONTHOUSANDSEP = 0x17;
        public const int LOCALE_SNATIVECTRYNAME = 0x8;
        public const int LOCALE_SNATIVEDIGITS = 0x13;
        public const int LOCALE_SNATIVELANGNAME = 0x4;
        public const int LOCALE_SNEGATIVESIGN = 0x51;
        public const int LOCALE_SPOSITIVESIGN = 0x50;
        public const int LOCALE_SSHORTDATE = 0x1F;
        public const int LOCALE_STHOUSAND = 0xF;
        public const int LOCALE_STIME = 0x1E;
        public const int LOCALE_STIMEFORMAT = 0x1003;
        public const int LOCKFILE_EXCLUSIVE_LOCK = 0x2;
        public const int LOCKFILE_FAIL_IMMEDIATELY = 0x1;
        public const int LOGON32_LOGON_BATCH = 4;
        public const int LOGON32_LOGON_INTERACTIVE = 2;
        public const int LOGON32_LOGON_SERVICE = 5;
        public const int LOGON32_PROVIDER_DEFAULT = 0;
        public const int LOGON32_PROVIDER_WINNT35 = 1;
        public const int LPTR = (LMEM_FIXED + LMEM_ZEROINIT);
        public const int LPTx = 0x80;
        public const int MAILSLOT_NO_MESSAGE = (-1);
        public const int MAILSLOT_WAIT_FOREVER = (-1);
        public const int MAP_COMPOSITE = 0x40;
        public const int MAP_FOLDCZONE = 0x10;
        public const int MAP_FOLDDIGITS = 0x80;
        public const int MAP_PRECOMPOSED = 0x20;
        public const int MARKPARITY = 3;
        public const int MAXByte = 0xFF;
        public const int MAXCHAR = 0x7F;
        public const int MAXDWORD = unchecked((int)0xFFFFFFFF);
        public const int MAXIMUM_ALLOWED = 0x2000000;
        public const int MAXLONG = 0x7FFFFFFF;
        public const int MAXSHORT = 0x7FFF;
        public const int MAXWORD = 0xFFFF;
        public const int MAX_DEFAULTCHAR = 2;
        public const int MAX_LEADBYTES = 12;
        public const int MAX_PATH = 260;
        public const int MB_COMPOSITE = 0x2;
        public const int MB_PRECOMPOSED = 0x1;
        public const int MB_USEGLYPHCHARS = 0x4;
        public const int MENU_EVENT = 0x8;
        public const int MINCHAR = 0x80;
        public const int MINLONG = unchecked((int)0x80000000);
        public const int MINSHORT = 0x8000;
        public const int MOUSE_MOVED = 0x1;
        public const int MOVEFILE_COPY_ALLOWED = 0x2;
        public const int MOVEFILE_DELAY_UNTIL_REBOOT = 0x4;
        public const int MOVEFILE_REPLACE_EXISTING = 0x1;
        public const int MS_CTS_ON = 0x10;
        public const int MS_DSR_ON = 0x20;
        public const int MS_RING_ON = 0x40;
        public const int MS_RLSD_ON = 0x80;
        public const int NMPWAIT_NOWAIT = 0x1;
        public const int NMPWAIT_USE_DEFAULT_WAIT = 0x0;
        public const int NMPWAIT_WAIT_FOREVER = 0xFFFF;
        public const int NONZEROLHND = (LMEM_MOVEABLE);
        public const int NONZEROLPTR = (LMEM_FIXED);
        public const int NOPARITY = 0;
        public const int NORMAL_PRIORITY_CLASS = 0x20;
        public const int NORM_IGNORECASE = 0x1;
        public const int NORM_IGNORENONSPACE = 0x2;
        public const int NORM_IGNORESYMBOLS = 0x4;
        public const int NO_PROPAGATE_INHERIT_ACE = 0x4;
        public const int NUMLOCK_ON = 0x20;
        public const int OBJECT_INHERIT_ACE = 0x1;
        public const int ODDPARITY = 1;
        public const int OFS_MAXPATHNAME = 128;
        public const int OF_CANCEL = 0x800;
        public const int OF_CREATE = 0x1000;
        public const int OF_DELETE = 0x200;
        public const int OF_EXIST = 0x4000;
        public const int OF_PARSE = 0x100;
        public const int OF_PROMPT = 0x2000;
        public const int OF_READ = 0x0;
        public const int OF_READWRITE = 0x2;
        public const int OF_REOPEN = 0x8000;
        public const int OF_SHARE_COMPAT = 0x0;
        public const int OF_SHARE_DENY_NONE = 0x40;
        public const int OF_SHARE_DENY_READ = 0x30;
        public const int OF_SHARE_DENY_WRITE = 0x20;
        public const int OF_SHARE_EXCLUSIVE = 0x10;
        public const int OF_VERIFY = 0x400;
        public const int OF_WRITE = 0x1;
        public const int ONE5STOPBITS = 1;
        public const int ONESTOPBIT = 0;
        public const int OPEN_ALWAYS = 4;
        public const int OPEN_EXISTING = 3;
        public const int OUTPUT_DEBUG_STRING_EVENT = 8;
        public const int PARITY_EVEN = 0x400;
        public const int PARITY_MARK = 0x800;
        public const int PARITY_NONE = 0x100;
        public const int PARITY_ODD = 0x200;
        public const int PARITY_SPACE = 0x1000;
        public const int PCF_16BITMODE = 0x200;
        public const int PCF_DTRDSR = 0x1;
        public const int PCF_INTTIMEOUTS = 0x80;
        public const int PCF_PARITY_CHECK = 0x8;
        public const int PCF_RLSD = 0x4;
        public const int PCF_RTSCTS = 0x2;
        public const int PCF_SETXCHAR = 0x20;
        public const int PCF_SPECIALCHARS = 0x100;
        public const int PCF_TOTALTIMEOUTS = 0x40;
        public const int PCF_XONXOFF = 0x10;
        public const int PERF_100NSEC_MULTI_TIMER = (PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_DELTA_COUNTER | PERF_COUNTER_RATE | PERF_TIMER_100NS | PERF_MULTI_COUNTER | PERF_DISPLAY_PERCENT);
        public const int PERF_100NSEC_MULTI_TIMER_INV = (PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_DELTA_COUNTER | PERF_COUNTER_RATE | PERF_TIMER_100NS | PERF_MULTI_COUNTER | PERF_INVERSE_COUNTER | PERF_DISPLAY_PERCENT);
        public const int PERF_100NSEC_TIMER = (PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_COUNTER_RATE | PERF_TIMER_100NS | PERF_DELTA_COUNTER | PERF_DISPLAY_PERCENT);
        public const int PERF_100NSEC_TIMER_INV = (PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_COUNTER_RATE | PERF_TIMER_100NS | PERF_DELTA_COUNTER | PERF_INVERSE_COUNTER | PERF_DISPLAY_PERCENT);
        public const int PERF_AVERAGE_BASE = (PERF_SIZE_DWORD | PERF_TYPE_COUNTER | PERF_COUNTER_BASE | PERF_DISPLAY_NOSHOW | 0x2);
        public const int PERF_AVERAGE_BULK = (PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_COUNTER_FRACTION | PERF_DISPLAY_NOSHOW);
        public const int PERF_AVERAGE_TIMER = (PERF_SIZE_DWORD | PERF_TYPE_COUNTER | PERF_COUNTER_FRACTION | PERF_DISPLAY_SECONDS);
        public const int PERF_COUNTER_BASE = 0x30000;
        public const int PERF_COUNTER_BULK_COUNT = (PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_COUNTER_RATE | PERF_TIMER_TICK | PERF_DELTA_COUNTER | PERF_DISPLAY_PER_SEC);
        public const int PERF_COUNTER_COUNTER = (PERF_SIZE_DWORD | PERF_TYPE_COUNTER | PERF_COUNTER_RATE | PERF_TIMER_TICK | PERF_DELTA_COUNTER | PERF_DISPLAY_PER_SEC);
        public const int PERF_COUNTER_ELAPSED = 0x40000;
        public const int PERF_COUNTER_FRACTION = 0x20000;
        public const int PERF_COUNTER_HISTOGRAM = 0x60000;
        public const int PERF_COUNTER_HISTOGRAM_TYPE = unchecked((int)0x80000000);
        public const int PERF_COUNTER_MULTI_BASE = (PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_COUNTER_BASE | PERF_MULTI_COUNTER | PERF_DISPLAY_NOSHOW);
        public const int PERF_COUNTER_MULTI_TIMER = (PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_COUNTER_RATE | PERF_DELTA_COUNTER | PERF_TIMER_TICK | PERF_MULTI_COUNTER | PERF_DISPLAY_PERCENT);
        public const int PERF_COUNTER_MULTI_TIMER_INV = (PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_COUNTER_RATE | PERF_DELTA_COUNTER | PERF_MULTI_COUNTER | PERF_TIMER_TICK | PERF_INVERSE_COUNTER | PERF_DISPLAY_PERCENT);
        public const int PERF_COUNTER_NODATA = (PERF_SIZE_ZERO | PERF_DISPLAY_NOSHOW);
        public const int PERF_COUNTER_QUEUELEN = 0x50000;
        public const int PERF_COUNTER_QUEUELEN_TYPE = (PERF_SIZE_DWORD | PERF_TYPE_COUNTER | PERF_COUNTER_QUEUELEN | PERF_TIMER_TICK | PERF_DELTA_COUNTER | PERF_DISPLAY_NO_SUFFIX);
        public const int PERF_COUNTER_RATE = 0x10000;
        public const int PERF_COUNTER_RAWCOUNT = (PERF_SIZE_DWORD | PERF_TYPE_NUMBER | PERF_NUMBER_DECIMAL | PERF_DISPLAY_NO_SUFFIX);
        public const int PERF_COUNTER_TEXT = (PERF_SIZE_VARIABLE_LEN | PERF_TYPE_TEXT | PERF_TEXT_UNICODE | PERF_DISPLAY_NO_SUFFIX);
        public const int PERF_COUNTER_TIMER = (PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_COUNTER_RATE | PERF_TIMER_TICK | PERF_DELTA_COUNTER | PERF_DISPLAY_PERCENT);
        public const int PERF_COUNTER_TIMER_INV = (PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_COUNTER_RATE | PERF_TIMER_TICK | PERF_DELTA_COUNTER | PERF_INVERSE_COUNTER | PERF_DISPLAY_PERCENT);
        public const int PERF_COUNTER_VALUE = 0x0;
        public const int PERF_DATA_REVISION = 1;
        public const int PERF_DATA_VERSION = 1;
        public const int PERF_DELTA_BASE = 0x800000;
        public const int PERF_DELTA_COUNTER = 0x400000;
        public const int PERF_DETAIL_ADVANCED = 200;
        public const int PERF_DETAIL_EXPERT = 300;
        public const int PERF_DETAIL_NOVICE = 100;
        public const int PERF_DETAIL_WIZARD = 400;
        public const int PERF_DISPLAY_NOSHOW = 0x40000000;
        public const int PERF_DISPLAY_NO_SUFFIX = 0x0;
        public const int PERF_DISPLAY_PERCENT = 0x20000000;
        public const int PERF_DISPLAY_PER_SEC = 0x10000000;
        public const int PERF_DISPLAY_SECONDS = 0x30000000;
        public const int PERF_ELAPSED_TIME = (PERF_SIZE_LARGE | PERF_TYPE_COUNTER | PERF_COUNTER_ELAPSED | PERF_OBJECT_TIMER | PERF_DISPLAY_SECONDS);
        public const int PERF_INVERSE_COUNTER = 0x1000000;
        public const int PERF_MULTI_COUNTER = 0x2000000;
        public const int PERF_NO_INSTANCES = -1;
        public const int PERF_NO_UNIQUE_ID = -1;
        public const int PERF_NUMBER_DECIMAL = 0x10000;
        public const int PERF_NUMBER_DEC_1000 = 0x20000;
        public const int PERF_NUMBER_HEX = 0x0;
        public const int PERF_OBJECT_TIMER = 0x200000;
        public const int PERF_RAW_BASE = (PERF_SIZE_DWORD | PERF_TYPE_COUNTER | PERF_COUNTER_BASE | PERF_DISPLAY_NOSHOW | 0x3);
        public const int PERF_RAW_FRACTION = (PERF_SIZE_DWORD | PERF_TYPE_COUNTER | PERF_COUNTER_FRACTION | PERF_DISPLAY_PERCENT);
        public const int PERF_SAMPLE_BASE = (PERF_SIZE_DWORD | PERF_TYPE_COUNTER | PERF_COUNTER_BASE | PERF_DISPLAY_NOSHOW | 0x1);
        public const int PERF_SAMPLE_COUNTER = (PERF_SIZE_DWORD | PERF_TYPE_COUNTER | PERF_COUNTER_RATE | PERF_TIMER_TICK | PERF_DELTA_COUNTER | PERF_DISPLAY_NO_SUFFIX);
        public const int PERF_SAMPLE_FRACTION = (PERF_SIZE_DWORD | PERF_TYPE_COUNTER | PERF_COUNTER_FRACTION | PERF_DELTA_COUNTER | PERF_DELTA_BASE | PERF_DISPLAY_PERCENT);
        public const int PERF_SIZE_DWORD = 0x0;
        public const int PERF_SIZE_LARGE = 0x100;
        public const int PERF_SIZE_VARIABLE_LEN = 0x300;
        public const int PERF_SIZE_ZERO = 0x200;
        public const int PERF_TEXT_ASCII = 0x10000;
        public const int PERF_TEXT_UNICODE = 0x0;
        public const int PERF_TIMER_100NS = 0x100000;
        public const int PERF_TIMER_TICK = 0x0;
        public const int PERF_TYPE_COUNTER = 0x400;
        public const int PERF_TYPE_NUMBER = 0x0;
        public const int PERF_TYPE_TEXT = 0x800;
        public const int PERF_TYPE_ZERO = 0xC00;
        public const int PIPE_ACCESS_DUPLEX = 0x3;
        public const int PIPE_ACCESS_INBOUND = 0x1;
        public const int PIPE_ACCESS_OUTBOUND = 0x2;
        public const int PIPE_CLIENT_END = 0x0;
        public const int PIPE_NOWAIT = 0x1;
        public const int PIPE_READMODE_BYTE = 0x0;
        public const int PIPE_READMODE_MESSAGE = 0x2;
        public const int PIPE_SERVER_END = 0x1;
        public const int PIPE_TYPE_BYTE = 0x0;
        public const int PIPE_TYPE_MESSAGE = 0x4;
        public const int PIPE_UNLIMITED_INSTANCES = 255;
        public const int PIPE_WAIT = 0x0;
        public const int PRIVILEGE_SET_ALL_NECESSARY = (1);
        public const int PROCESSOR_ALPHA_21064 = 21064;
        public const int PROCESSOR_ARCHITECTURE_ALPHA = 2;
        public const int PROCESSOR_ARCHITECTURE_INTEL = 0;
        public const int PROCESSOR_ARCHITECTURE_MIPS = 1;
        public const int PROCESSOR_ARCHITECTURE_PPC = 3;
        public const int PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF;
        public const int PROCESSOR_INTEL_386 = 386;
        public const int PROCESSOR_INTEL_486 = 486;
        public const int PROCESSOR_INTEL_PENTIUM = 586;
        public const int PROCESSOR_MIPS_R4000 = 4000;
        public const int PROCESS_HEAP_ENTRY_BUSY = 0x4;
        public const int PROCESS_HEAP_ENTRY_DDESHARE = 0x20;
        public const int PROCESS_HEAP_ENTRY_MOVEABLE = 0x10;
        public const int PROCESS_HEAP_REGION = 0x1;
        public const int PROCESS_HEAP_UNCOMMITTED_RANGE = 0x2;
        public const int PROFILE_KERNEL = 0x20000000;
        public const int PROFILE_SERVER = 0x40000000;
        public const int PROFILE_USER = 0x10000000;
        public const int PST_FAX = 0x21;
        public const int PST_LAT = 0x101;
        public const int PST_NETWORK_BRIDGE = 0x100;
        public const int PST_PARALLELPORT = 0x2;
        public const int PST_RS232 = 0x1;
        public const int PST_RS422 = 0x3;
        public const int PST_RS423 = 0x4;
        public const int PST_RS449 = 0x5;
        public const int PST_SCANNER = 0x22;
        public const int PST_TCPIP_TELNET = 0x102;
        public const int PST_UNSPECIFIED = 0x0;
        public const int PST_X25 = 0x103;
        public const int PURGE_RXABORT = 0x2;
        public const int PURGE_RXCLEAR = 0x8;
        public const int PURGE_TXABORT = 0x1;
        public const int PURGE_TXCLEAR = 0x4;
        public const int READ_CONTROL = 0x20000;
        public const int REALTIME_PRIORITY_CLASS = 0x100;
        public const int REG_BINARY = 3;
        public const int REG_CREATED_NEW_KEY = 0x1;
        public const int REG_DWORD = 4;
        public const int REG_DWORD_BIG_ENDIAN = 5;
        public const int REG_DWORD_LITTLE_ENDIAN = 4;
        public const int REG_EXPAND_SZ = 2;
        public const int REG_FULL_RESOURCE_DESCRIPTOR = 9;
        public const int REG_LEGAL_CHANGE_FILTER = (REG_NOTIFY_CHANGE_NAME | REG_NOTIFY_CHANGE_ATTRIBUTES | REG_NOTIFY_CHANGE_LAST_SET | REG_NOTIFY_CHANGE_SECURITY);
        public const int REG_LEGAL_OPTION = (REG_OPTION_RESERVED | REG_OPTION_NON_VOLATILE | REG_OPTION_VOLATILE | REG_OPTION_CREATE_LINK | REG_OPTION_BACKUP_RESTORE);
        public const int REG_LINK = 6;
        public const int REG_MULTI_SZ = 7;
        public const int REG_NONE = 0;
        public const int REG_NOTIFY_CHANGE_ATTRIBUTES = 0x2;
        public const int REG_NOTIFY_CHANGE_LAST_SET = 0x4;
        public const int REG_NOTIFY_CHANGE_NAME = 0x1;
        public const int REG_NOTIFY_CHANGE_SECURITY = 0x8;
        public const int REG_OPENED_EXISTING_KEY = 0x2;
        public const int REG_OPTION_BACKUP_RESTORE = 4;
        public const int REG_OPTION_CREATE_LINK = 2;
        public const int REG_OPTION_NON_VOLATILE = 0;
        public const int REG_OPTION_RESERVED = 0;
        public const int REG_OPTION_VOLATILE = 1;
        public const int REG_REFRESH_HIVE = 0x2;
        public const int REG_RESOURCE_LIST = 8;
        public const int REG_RESOURCE_REQUIREMENTS_LIST = 10;
        public const int REG_SZ = 1;
        public const int REG_WHOLE_HIVE_VOLATILE = 0x1;
        public const int RESETDEV = 7;
        public const int RIGHTMOST_BUTTON_PRESSED = 0x2;
        public const int RIGHT_ALT_PRESSED = 0x1;
        public const int RIGHT_CTRL_PRESSED = 0x4;
        public const int RIP_EVENT = 9;
        public const int RTS_CONTROL_DISABLE = 0x0;
        public const int RTS_CONTROL_ENABLE = 0x1;
        public const int RTS_CONTROL_HANDSHAKE = 0x2;
        public const int RTS_CONTROL_TOGGLE = 0x3;
        public const int RT_ACCELERATOR = 9;
        public const int RT_BITMAP = 2;
        public const int RT_CURSOR = 1;
        public const int RT_DIALOG = 5;
        public const int RT_FONT = 8;
        public const int RT_FONTDIR = 7;
        public const int RT_ICON = 3;
        public const int RT_MENU = 4;
        public const int RT_RCDATA = 10;
        public const int RT_STRING = 6;
        public const int RT_MESSAGETABLE = 11;
        public const int RT_VERSION = 16;
        public const int RT_DLGINCLUDE = 17;
        public const int RT_PLUGPLAY = 19;
        public const int RT_VXD = 20;
        public const int RT_ANICURSOR = 21;
        public const int RT_ANIICON = 22;
        public const int RT_HTML = 23;
        public const int RT_MANIFEST = 24;
        public const int SCROLLLOCK_ON = 0x40;
        public const int SCS_32BIT_BINARY = 0;
        public const int SCS_DOS_BINARY = 1;
        public const int SCS_OS216_BINARY = 5;
        public const int SCS_PIF_BINARY = 3;
        public const int SCS_POSIX_BINARY = 4;
        public const int SCS_WOW_BINARY = 2;
        public const int SC_MANAGER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED | SC_MANAGER_CONNECT | SC_MANAGER_CREATE_SERVICE | SC_MANAGER_ENUMERATE_SERVICE | SC_MANAGER_LOCK | SC_MANAGER_QUERY_LOCK_STATUS | SC_MANAGER_MODIFY_BOOT_CONFIG);
        public const int SC_MANAGER_CONNECT = 0x1;
        public const int SC_MANAGER_CREATE_SERVICE = 0x2;
        public const int SC_MANAGER_ENUMERATE_SERVICE = 0x4;
        public const int SC_MANAGER_LOCK = 0x8;
        public const int SC_MANAGER_MODIFY_BOOT_CONFIG = 0x20;
        public const int SC_MANAGER_QUERY_LOCK_STATUS = 0x10;
        public const int SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SECTION_QUERY | SECTION_MAP_WRITE | SECTION_MAP_READ | SECTION_MAP_EXECUTE | SECTION_EXTEND_SIZE;
        public const int SECTION_EXTEND_SIZE = 0x10;
        public const int SECTION_MAP_EXECUTE = 0x8;
        public const int SECTION_MAP_READ = 0x4;
        public const int SECTION_MAP_WRITE = 0x2;
        public const int SECTION_QUERY = 0x1;
        public const int SECURITY_ANONYMOUS_LOGON_RID = 0x7;
        public const int SECURITY_BATCH_RID = 0x3;
        public const int SECURITY_BUILTIN_DOMAIN_RID = 0x20;
        public const int SECURITY_CONTEXT_TRACKING = 0x40000;
        public const int SECURITY_CREATOR_GROUP_RID = 0x1;
        public const int SECURITY_CREATOR_OWNER_RID = 0x0;
        public const int SECURITY_DESCRIPTOR_MIN_LENGTH = (20);
        public const int SECURITY_DESCRIPTOR_REVISION = (1);
        public const int SECURITY_DESCRIPTOR_REVISION1 = (1);
        public const int SECURITY_DIALUP_RID = 0x1;
        public const int SECURITY_EFFECTIVE_ONLY = 0x80000;
        public const int SECURITY_INTERACTIVE_RID = 0x4;
        public const int SECURITY_LOCAL_RID = 0x0;
        public const int SECURITY_LOCAL_SYSTEM_RID = 0x12;
        public const int SECURITY_LOGON_IDS_RID = 0x5;
        public const int SECURITY_NETWORK_RID = 0x2;
        public const int SECURITY_NT_NON_UNIQUE = 0x15;
        public const int SECURITY_NULL_RID = 0x0;
        public const int SECURITY_SERVICE_RID = 0x6;
        public const int SECURITY_SQOS_PRESENT = 0x100000;
        public const int SECURITY_VALID_SQOS_FLAGS = 0x1F0000;
        public const int SECURITY_WORLD_RID = 0x0;
        public const int SEM_FAILCRITICALERRORS = 0x1;
        public const int SEM_NOGPFAULTERRORBOX = 0x2;
        public const int SEM_NOOPENFILEERRORBOX = 0x8000;
        public const int SERVICE_ACCEPT_PAUSE_CONTINUE = 0x2;
        public const int SERVICE_ACCEPT_SHUTDOWN = 0x4;
        public const int SERVICE_ACCEPT_STOP = 0x1;
        public const int SERVICE_ACTIVE = 0x1;
        public const int SERVICE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL);
        public const int SERVICE_CHANGE_CONFIG = 0x2;
        public const int SERVICE_CONTINUE_PENDING = 0x5;
        public const int SERVICE_CONTROL_CONTINUE = 0x3;
        public const int SERVICE_CONTROL_INTERROGATE = 0x4;
        public const int SERVICE_CONTROL_PAUSE = 0x2;
        public const int SERVICE_CONTROL_SHUTDOWN = 0x5;
        public const int SERVICE_CONTROL_STOP = 0x1;
        public const int SERVICE_ENUMERATE_DEPENDENTS = 0x8;
        public const int SERVICE_INACTIVE = 0x2;
        public const int SERVICE_INTERROGATE = 0x80;
        public const int SERVICE_NO_CHANGE = 0xFFFF;
        public const int SERVICE_PAUSED = 0x7;
        public const int SERVICE_PAUSE_CONTINUE = 0x40;
        public const int SERVICE_PAUSE_PENDING = 0x6;
        public const int SERVICE_QUERY_CONFIG = 0x1;
        public const int SERVICE_QUERY_STATUS = 0x4;
        public const int SERVICE_RUNNING = 0x4;
        public const int SERVICE_START = 0x10;
        public const int SERVICE_START_PENDING = 0x2;
        public const int SERVICE_STATE_ALL = (SERVICE_ACTIVE | SERVICE_INACTIVE);
        public const int SERVICE_STOP = 0x20;
        public const int SERVICE_STOPPED = 0x1;
        public const int SERVICE_STOP_PENDING = 0x3;
        public const int SERVICE_USER_DEFINED_CONTROL = 0x100;
        public const int SETBREAK = 8;
        public const int SETDTR = 5;
        public const int SETRTS = 3;
        public const int SETXOFF = 1;
        public const int SETXON = 2;
        public const int SET_TAPE_DRIVE_INFORMATION = 1;
        public const int SET_TAPE_MEDIA_INFORMATION = 0;
        public const int SE_DACL_DEFAULTED = 0x8;
        public const int SE_DACL_PRESENT = 0x4;
        public const int SE_GROUP_DEFAULTED = 0x2;
        public const int SE_GROUP_ENABLED = 0x4;
        public const int SE_GROUP_ENABLED_BY_DEFAULT = 0x2;
        public const int SE_GROUP_LOGON_ID = unchecked((int)0xC0000000);
        public const int SE_GROUP_MANDATORY = 0x1;
        public const int SE_GROUP_OWNER = 0x8;
        public const int SE_OWNER_DEFAULTED = 0x1;
        public const int SE_PRIVILEGE_ENABLED = 0x2;
        public const int SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x1;
        public const int SE_PRIVILEGE_USED_FOR_ACCESS = unchecked((int)0x80000000);
        public const int SE_SACL_DEFAULTED = 0x20;
        public const int SE_SACL_PRESENT = 0x10;
        public const int SE_SELF_RELATIVE = 0x8000;
        public const int SHIFT_PRESSED = 0x10;
        public const int SHUTDOWN_NORETRY = 0x1;
        public const int SID_MAX_SUB_AUTHORITIES = (15);
        public const int SID_RECOMMENDED_SUB_AUTHORITIES = (1);
        public const int SID_REVISION = (1);
        public const int SLE_ERROR = 0x1;
        public const int SLE_MINORERROR = 0x2;
        public const int SLE_WARNING = 0x3;
        public const int SORT_CHINESE_BIG5 = 0x0;
        public const int SORT_CHINESE_UNICODE = 0x1;
        public const int SORT_DEFAULT = 0x0;
        public const int SORT_JAPANESE_UNICODE = 0x1;
        public const int SORT_JAPANESE_XJIS = 0x0;
        public const int SORT_KOREAN_KSC = 0x0;
        public const int SORT_KOREAN_UNICODE = 0x1;
        public const int SORT_STRINGSORT = 0x1000;
        public const int SPACEPARITY = 4;
        public const int SPECIFIC_RIGHTS_ALL = 0xFFFF;
        public const int SP_BAUD = 0x2;
        public const int SP_DATABITS = 0x4;
        public const int SP_HANDSHAKING = 0x10;
        public const int SP_PARITY = 0x1;
        public const int SP_PARITY_CHECK = 0x20;
        public const int SP_RLSD = 0x40;
        public const int SP_SERIALCOMM = 0x1;
        public const int SP_STOPBITS = 0x8;
        public const int STANDARD_RIGHTS_ALL = 0x1F0000;
        public const int STANDARD_RIGHTS_EXECUTE = (READ_CONTROL);
        public const int STANDARD_RIGHTS_READ = (READ_CONTROL);
        public const int STANDARD_RIGHTS_REQUIRED = 0xF0000;
        public const int STANDARD_RIGHTS_WRITE = (READ_CONTROL);
        public const int STARTF_FORCEOFFFEEDBACK = 0x80;
        public const int STARTF_FORCEONFEEDBACK = 0x40;
        public const int STARTF_RUNFULLSCREEN = 0x20;
        public const int STARTF_USECOUNTCHARS = 0x8;
        public const int STARTF_USEFILLATTRIBUTE = 0x10;
        public const int STARTF_USEPOSITION = 0x4;
        public const int STARTF_USESHOWWINDOW = 0x1;
        public const int STARTF_USESIZE = 0x2;
        public const int STARTF_USESTDHANDLES = 0x100;
        public const int STD_ERROR_HANDLE = -12;
        public const int STD_INPUT_HANDLE = -10;
        public const int STD_OUTPUT_HANDLE = -11;
        public const int STOPBITS_10 = 0x1;
        public const int STOPBITS_15 = 0x2;
        public const int STOPBITS_20 = 0x4;
        public const int STREAM_CONTAINS_SECURITY = 0x2;
        public const int STREAM_MODIFIED_WHEN_READ = 0x1;
        public const int SUBLANG_CHINESE_HONGKONG = 0x3;
        public const int SUBLANG_CHINESE_SIMPLIFIED = 0x2;
        public const int SUBLANG_CHINESE_SINGAPORE = 0x4;
        public const int SUBLANG_CHINESE_TRADITIONAL = 0x1;
        public const int SUBLANG_DEFAULT = 0x1;
        public const int SUBLANG_DUTCH = 0x1;
        public const int SUBLANG_DUTCH_BELGIAN = 0x2;
        public const int SUBLANG_ENGLISH_AUS = 0x3;
        public const int SUBLANG_ENGLISH_CAN = 0x4;
        public const int SUBLANG_ENGLISH_EIRE = 0x6;
        public const int SUBLANG_ENGLISH_NZ = 0x5;
        public const int SUBLANG_ENGLISH_UK = 0x2;
        public const int SUBLANG_ENGLISH_US = 0x1;
        public const int SUBLANG_FRENCH = 0x1;
        public const int SUBLANG_FRENCH_BELGIAN = 0x2;
        public const int SUBLANG_FRENCH_CANADIAN = 0x3;
        public const int SUBLANG_FRENCH_SWISS = 0x4;
        public const int SUBLANG_GERMAN = 0x1;
        public const int SUBLANG_GERMAN_AUSTRIAN = 0x3;
        public const int SUBLANG_GERMAN_SWISS = 0x2;
        public const int SUBLANG_ITALIAN = 0x1;
        public const int SUBLANG_ITALIAN_SWISS = 0x2;
        public const int SUBLANG_NEUTRAL = 0x0;
        public const int SUBLANG_NORWEGIAN_BOKMAL = 0x1;
        public const int SUBLANG_NORWEGIAN_NYNORSK = 0x2;
        public const int SUBLANG_PORTUGUESE = 0x2;
        public const int SUBLANG_PORTUGUESE_BRAZILIAN = 0x1;
        public const int SUBLANG_SPANISH = 0x1;
        public const int SUBLANG_SPANISH_MEXICAN = 0x2;
        public const int SUBLANG_SPANISH_MODERN = 0x3;
        public const int SUBLANG_SYS_DEFAULT = 0x2;
        public const int SUCCESSFUL_ACCESS_ACE_FLAG = 0x40;
        public const int SYNCHRONIZE = 0x100000;
        public const int SYSTEM_ALARM_ACE_TYPE = 0x3;
        public const int SYSTEM_AUDIT_ACE_TYPE = 0x2;
        public const int S_ALLTHRESHOLD = 2;
        public const int S_LEGATO = 1;
        public const int S_NORMAL = 0;
        public const int S_PERIOD1024 = 1;
        public const int S_PERIOD2048 = 2;
        public const int S_PERIOD512 = 0;
        public const int S_PERIODVOICE = 3;
        public const int S_QUEUEEMPTY = 0;
        public const int S_SERBDNT = (-5);
        public const int S_SERDCC = (-7);
        public const int S_SERDDR = (-14);
        public const int S_SERDFQ = (-13);
        public const int S_SERDLN = (-6);
        public const int S_SERDMD = (-10);
        public const int S_SERDPT = (-12);
        public const int S_SERDSH = (-11);
        public const int S_SERDSR = (-15);
        public const int S_SERDST = (-16);
        public const int S_SERDTP = (-8);
        public const int S_SERDVL = (-9);
        public const int S_SERDVNA = (-1);
        public const int S_SERMACT = (-3);
        public const int S_SEROFM = (-2);
        public const int S_SERQFUL = (-4);
        public const int S_STACCATO = 2;
        public const int S_THRESHOLD = 1;
        public const int S_WHITE1024 = 5;
        public const int S_WHITE2048 = 6;
        public const int S_WHITE512 = 4;
        public const int S_WHITEVOICE = 7;
        public const int SecurityAnonymous = 1;
        public const int SecurityIdentification = 2;
        public const int SidTypeAlias = 4;
        public const int SidTypeDeletedAccount = 6;
        public const int SidTypeDomain = 3;
        public const int SidTypeGroup = 2;
        public const int SidTypeInvalid = 7;
        public const int SidTypeUnknown = 8;
        public const int SidTypeUser = 1;
        public const int SidTypeWellKnownGroup = 5;
        public const int TC_GP_TRAP = 2;
        public const int TC_HARDERR = 1;
        public const int TC_NORMAL = 0;
        public const int TC_SIGNAL = 3;
        public const int TF_FORCEDRIVE = 0x80;
        public const int THREAD_BASE_PRIORITY_IDLE = -15;
        public const int THREAD_BASE_PRIORITY_LOWRT = 15;
        public const int THREAD_BASE_PRIORITY_MAX = 2;
        public const int THREAD_BASE_PRIORITY_MIN = -2;
        public const int THREAD_PRIORITY_ABOVE_NORMAL = (THREAD_PRIORITY_HIGHEST - 1);
        public const int THREAD_PRIORITY_BELOW_NORMAL = (THREAD_PRIORITY_LOWEST + 1);
        public const int THREAD_PRIORITY_ERROR_RETURN = (MAXLONG);
        public const int THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX;
        public const int THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE;
        public const int THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN;
        public const int THREAD_PRIORITY_NORMAL = 0;
        public const int THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT;
        public const int TIME_FORCE24HOURFORMAT = 0x8;
        public const int TIME_NOMINUTESORSECONDS = 0x1;
        public const int TIME_NOSECONDS = 0x2;
        public const int TIME_NOTIMEMARKER = 0x4;
        public const int TLS_OUT_OF_INDEXES = 0xFFFF;
        public const int TRUNCATE_EXISTING = 5;
        public const int TWOSTOPBITS = 2;
        public const int TokenDefaultDacl = 6;
        public const int TokenGroups = 2;
        public const int TokenImpersonationLevel = 9;
        public const int TokenOwner = 4;
        public const int TokenPrimaryGroup = 5;
        public const int TokenPrivileges = 3;
        public const int TokenSource = 7;
        public const int TokenStatistics = 10;
        public const int TokenType = 8;
        public const int TokenUser = 1;
        public const int UNLOAD_DLL_DEBUG_EVENT = 7;
        public const int VALID_INHERIT_FLAGS = 0xF;
        public const int VER_PLATFORM_WIN32_NT = 2;
        public const int VER_PLATFORM_WIN32_WINDOWS = 1;
        public const int VER_PLATFORM_WIN32s = 0;
        public const int WC_COMPOSITECHECK = 0x200;
        public const int WC_DEFAULTCHAR = 0x40;
        public const int WC_DEFAULTCHECK = 0x100;
        public const int WC_DISCARDNS = 0x10;
        public const int WC_SEPCHARS = 0x20;
        public const int WINDOW_BUFFER_SIZE_EVENT = 0x4;
        public const int WRITE_DAC = 0x40000;
        public const int WRITE_OWNER = 0x80000;
        public const int mouse_eventC = 0x2;
        public const int ABSOLUTE = 1;
        public const int AD_CLOCKWISE = 2;
        public const int AD_COUNTERCLOCKWISE = 1;
        public const int ALTERNATE = 1;
        public const int ANSI_CHARSET = 0;
        public const int ANSI_FIXED_FONT = 11;
        public const int ANSI_VAR_FONT = 12;
        public const int ARABIC_CHARSET = 178;
        public const int ASPECTX = 40;
        public const int ASPECTXY = 44;
        public const int ASPECTY = 42;
        public const int ASPECT_FILTERING = 0x1;
        public const int AbortDocC = 2;
        public const int BALTIC_CHARSET = 186;
        public const int BANDINFO = 24;
        public const int BEGIN_PATH = 4096;
        public const int BITSPIXEL = 12;
        public const int BI_RGB = 0;
        public const int BI_RLE4 = 2;
        public const int BI_RLE8 = 1;
        public const int BI_bitfields = 3;
        public const int BKMODE_LAST = 2;
        public const int BLACKNESS = 0x42;
        public const int BLACKONWHITE = 1;
        public const int BLACK_BRUSH = 4;
        public const int BLACK_PEN = 7;
        public const int BS_DIBPATTERN = 5;
        public const int BS_DIBPATTERN8X8 = 8;
        public const int BS_DIBPATTERNPT = 6;
        public const int BS_HATCHED = 2;
        public const int BS_HOLLOW = BS_NULL;
        public const int BS_INDEXED = 4;
        public const int BS_NULL = 1;
        public const int BS_PATTERN = 3;
        public const int BS_PATTERN8X8 = 7;
        public const int BS_SOLID = 0;
        public const int CA_LOG_FILTER = 0x2;
        public const int CA_NEGATIVE = 0x1;
        public const int CBM_CREATEDIB = 0x2;
        public const int CBM_INIT = 0x4;
        public const int CCHDEVICENAME = 32;
        public const int CCHFORMNAME = 32;
        public const int CC_CHORD = 4;
        public const int CC_CIRCLES = 1;
        public const int CC_ELLIPSES = 8;
        public const int CC_INTERIORS = 128;
        public const int CC_NONE = 0;
        public const int CC_PIE = 2;
        public const int CC_ROUNDRECT = 256;
        public const int CC_STYLED = 32;
        public const int CC_WIDE = 16;
        public const int CC_WIDESTYLED = 64;
        public const int CHINESEBIG5_CHARSET = 136;
        public const int CLIPCAPS = 36;
        public const int CLIP_CHARACTER_PRECIS = 1;
        public const int CLIP_DEFAULT_PRECIS = 0;
        public const int CLIP_EMBEDDED = 128;
        public const int CLIP_LH_ANGLES = 16;
        public const int CLIP_MASK = 0xF;
        public const int CLIP_STROKE_PRECIS = 2;
        public const int CLIP_TO_PATH = 4097;
        public const int CLIP_TT_ALWAYS = 32;
        public const int CLOSECHANNEL = 4112;
        public const int CLR_INVALID = 0xFFFF;
        public const int COLORONCOLOR = 3;
        public const int COLORRES = 108;
        public const int COLOR_ADJ_MAX = 100;
        public const int COLOR_ADJ_MIN = -100;
        public const int COMPLEXREGION = 3;
        public const int CP_NONE = 0;
        public const int CP_RECTANGLE = 1;
        public const int CP_REGION = 2;
        public const int CURVECAPS = 28;
        public const int DCBA_FACEDOWNCENTER = 0x101;
        public const int DCBA_FACEDOWNLEFT = 0x102;
        public const int DCBA_FACEDOWNNONE = 0x100;
        public const int DCBA_FACEDOWNRIGHT = 0x103;
        public const int DCBA_FACEUPCENTER = 0x1;
        public const int DCBA_FACEUPLEFT = 0x2;
        public const int DCBA_FACEUPNONE = 0x0;
        public const int DCBA_FACEUPRIGHT = 0x3;
        public const int DCB_ACCUMULATE = 0x2;
        public const int DCB_DIRTY = DCB_ACCUMULATE;
        public const int DCB_DISABLE = 0x8;
        public const int DCB_ENABLE = 0x4;
        public const int DCB_RESET = 0x1;
        public const int DCB_SET = (DCB_RESET | DCB_ACCUMULATE);
        public const int DCTT_BITMAP = 0x1;
        public const int DCTT_DOWNLOAD = 0x2;
        public const int DCTT_DOWNLOAD_OUTLINE = 0x8;
        public const int DCTT_SUBDEV = 0x4;
        public const int DC_BINADJUST = 19;
        public const int DC_BINNAMES = 12;
        public const int DC_BINS = 6;
        public const int DC_COLLATE = 22;
        public const int DC_COPIES = 18;
        public const int DC_DATATYPE_PRODUCED = 21;
        public const int DC_DRIVER = 11;
        public const int DC_DUPLEX = 7;
        public const int DC_EMF_COMPLIANT = 20;
        public const int DC_ENUMRESOLUTIONS = 13;
        public const int DC_EXTRA = 9;
        public const int DC_FIELDS = 1;
        public const int DC_FILEDEPENDENCIES = 14;
        public const int DC_MAXEXTENT = 5;
        public const int DC_MINEXTENT = 4;
        public const int DC_ORIENTATION = 17;
        public const int DC_PAPERNAMES = 16;
        public const int DC_PAPERS = 2;
        public const int DC_PAPERSIZE = 3;
        public const int DC_SIZE = 8;
        public const int DC_TRUETYPE = 15;
        public const int DC_VERSION = 10;
        public const int DEFAULT_CHARSET = 1;
        public const int DEFAULT_GUI_FONT = 17;
        public const int DEFAULT_PALETTE = 15;
        public const int DEFAULT_PITCH = 0;
        public const int DEFAULT_QUALITY = 0;
        public const int DEVICEDATA = 19;
        public const int DEVICE_DEFAULT_FONT = 14;
        public const int DEVICE_FONTTYPE = 0x2;
        public const int DIB_PAL_COLORS = 1;
        public const int DIB_PAL_INDICES = 2;
        public const int DIB_PAL_LOGINDICES = 4;
        public const int DIB_PAL_PHYSINDICES = 2;
        public const int DIB_RGB_COLORS = 0;
        public const int DKGRAY_BRUSH = 3;
        public const int DMBIN_AUTO = 7;
        public const int DMBIN_CASSETTE = 14;
        public const int DMBIN_ENVELOPE = 5;
        public const int DMBIN_ENVMANUAL = 6;
        public const int DMBIN_FIRST = DMBIN_UPPER;
        public const int DMBIN_LARGECAPACITY = 11;
        public const int DMBIN_LARGEFMT = 10;
        public const int DMBIN_LAST = DMBIN_CASSETTE;
        public const int DMBIN_LOWER = 2;
        public const int DMBIN_MANUAL = 4;
        public const int DMBIN_MIDDLE = 3;
        public const int DMBIN_ONLYONE = 1;
        public const int DMBIN_SMALLFMT = 9;
        public const int DMBIN_TRACTOR = 8;
        public const int DMBIN_UPPER = 1;
        public const int DMBIN_USER = 256;
        public const int DMCOLLATE_FALSE = 0;
        public const int DMCOLLATE_TRUE = 1;
        public const int DMCOLOR_COLOR = 2;
        public const int DMCOLOR_MONOCHROME = 1;
        public const int DMDITHER_COARSE = 2;
        public const int DMDITHER_FINE = 3;
        public const int DMDITHER_GRAYSCALE = 5;
        public const int DMDITHER_LINEART = 4;
        public const int DMDITHER_NONE = 1;
        public const int DMDITHER_USER = 256;
        public const int DMDUP_HORIZONTAL = 3;
        public const int DMDUP_SIMPLEX = 1;
        public const int DMDUP_VERTICAL = 2;
        public const int DMICMMETHOD_DEVICE = 4;
        public const int DMICMMETHOD_DRIVER = 3;
        public const int DMICMMETHOD_NONE = 1;
        public const int DMICMMETHOD_SYSTEM = 2;
        public const int DMICMMETHOD_USER = 256;
        public const int DMICM_COLORMETRIC = 3;
        public const int DMICM_CONTRAST = 2;
        public const int DMICM_SATURATE = 1;
        public const int DMICM_USER = 256;
        public const int DMMEDIA_GLOSSY = 2;
        public const int DMMEDIA_STANDARD = 1;
        public const int DMMEDIA_TRANSPARENCY = 3;
        public const int DMMEDIA_USER = 256;
        public const int DMORIENT_LANDSCAPE = 2;
        public const int DMORIENT_PORTRAIT = 1;
        public const int DMPAPER_10X11 = 45;
        public const int DMPAPER_10X14 = 16;
        public const int DMPAPER_11X17 = 17;
        public const int DMPAPER_15X11 = 46;
        public const int DMPAPER_9X11 = 44;
        public const int DMPAPER_A2 = 66;
        public const int DMPAPER_A3 = 8;
        public const int DMPAPER_A3_EXTRA = 63;
        public const int DMPAPER_A3_EXTRA_TRANSVERSE = 68;
        public const int DMPAPER_A3_TRANSVERSE = 67;
        public const int DMPAPER_A4 = 9;
        public const int DMPAPER_A4SMALL = 10;
        public const int DMPAPER_A4_EXTRA = 53;
        public const int DMPAPER_A4_PLUS = 60;
        public const int DMPAPER_A4_TRANSVERSE = 55;
        public const int DMPAPER_A5 = 11;
        public const int DMPAPER_A5_EXTRA = 64;
        public const int DMPAPER_A5_TRANSVERSE = 61;
        public const int DMPAPER_A_PLUS = 57;
        public const int DMPAPER_B4 = 12;
        public const int DMPAPER_B5 = 13;
        public const int DMPAPER_B5_EXTRA = 65;
        public const int DMPAPER_B5_TRANSVERSE = 62;
        public const int DMPAPER_B_PLUS = 58;
        public const int DMPAPER_CSHEET = 24;
        public const int DMPAPER_DSHEET = 25;
        public const int DMPAPER_ENV_10 = 20;
        public const int DMPAPER_ENV_11 = 21;
        public const int DMPAPER_ENV_12 = 22;
        public const int DMPAPER_ENV_14 = 23;
        public const int DMPAPER_ENV_9 = 19;
        public const int DMPAPER_ENV_B4 = 33;
        public const int DMPAPER_ENV_B5 = 34;
        public const int DMPAPER_ENV_B6 = 35;
        public const int DMPAPER_ENV_C3 = 29;
        public const int DMPAPER_ENV_C4 = 30;
        public const int DMPAPER_ENV_C5 = 28;
        public const int DMPAPER_ENV_C6 = 31;
        public const int DMPAPER_ENV_C65 = 32;
        public const int DMPAPER_ENV_DL = 27;
        public const int DMPAPER_ENV_INVITE = 47;
        public const int DMPAPER_ENV_ITALY = 36;
        public const int DMPAPER_ENV_MONARCH = 37;
        public const int DMPAPER_ENV_PERSONAL = 38;
        public const int DMPAPER_ESHEET = 26;
        public const int DMPAPER_EXECUTIVE = 7;
        public const int DMPAPER_FANFOLD_LGL_GERMAN = 41;
        public const int DMPAPER_FANFOLD_STD_GERMAN = 40;
        public const int DMPAPER_FANFOLD_US = 39;
        public const int DMPAPER_FIRST = DMPAPER_LETTER;
        public const int DMPAPER_FOLIO = 14;
        public const int DMPAPER_ISO_B4 = 42;
        public const int DMPAPER_JAPANESE_POSTCARD = 43;
        public const int DMPAPER_LAST = DMPAPER_FANFOLD_LGL_GERMAN;
        public const int DMPAPER_LEDGER = 4;
        public const int DMPAPER_LEGAL = 5;
        public const int DMPAPER_LEGAL_EXTRA = 51;
        public const int DMPAPER_LETTER = 1;
        public const int DMPAPER_LETTERSMALL = 2;
        public const int DMPAPER_LETTER_EXTRA = 50;
        public const int DMPAPER_LETTER_EXTRA_TRANSVERSE = 56;
        public const int DMPAPER_LETTER_PLUS = 59;
        public const int DMPAPER_LETTER_TRANSVERSE = 54;
        public const int DMPAPER_NOTE = 18;
        public const int DMPAPER_QUARTO = 15;
        public const int DMPAPER_RESERVED_48 = 48;
        public const int DMPAPER_RESERVED_49 = 49;
        public const int DMPAPER_STATEMENT = 6;
        public const int DMPAPER_TABLOID = 3;
        public const int DMPAPER_TABLOID_EXTRA = 52;
        public const int DMPAPER_USER = 256;
        public const int DMRES_DRAFT = (-1);
        public const int DMRES_HIGH = (-4);
        public const int DMRES_LOW = (-2);
        public const int DMRES_MEDIUM = (-3);
        public const int DMTT_BITMAP = 1;
        public const int DMTT_DOWNLOAD = 2;
        public const int DMTT_DOWNLOAD_OUTLINE = 4;
        public const int DMTT_SUBDEV = 3;
        public const int DM_COLLATE = 0x8000;
        public const int DM_COLOR = 0x800;
        public const int DM_COPIES = 0x100;
        public const int DM_COPY = 2;
        public const int DM_DEFAULTSOURCE = 0x200;
        public const int DM_DITHERTYPE = 0x10000000;
        public const int DM_DUPLEX = 0x1000;
        public const int DM_FORMNAME = 0x10000;
        public const int DM_GRAYSCALE = 0x1;
        public const int DM_ICMINTENT = 0x4000000;
        public const int DM_ICMMETHOD = 0x2000000;
        public const int DM_INTERLACED = 0x2;
        public const int DM_IN_BUFFER = DM_MODIFY;
        public const int DM_IN_PROMPT = DM_PROMPT;
        public const int DM_MEDIATYPE = 0x8000000;
        public const int DM_MODIFY = 8;
        public const int DM_ORIENTATION = 0x1;
        public const int DM_OUT_BUFFER = DM_COPY;
        public const int DM_OUT_DEFAULT = DM_UPDATE;
        public const int DM_PAPERLENGTH = 0x4;
        public const int DM_PAPERSIZE = 0x2;
        public const int DM_PAPERWIDTH = 0x8;
        public const int DM_PRINTQUALITY = 0x400;
        public const int DM_PROMPT = 4;
        public const int DM_RESERVED1 = 0x800000;
        public const int DM_RESERVED2 = 0x1000000;
        public const int DM_SCALE = 0x10;
        public const int DM_SPECVERSION = 0x320;
        public const int DM_TTOPTION = 0x4000;
        public const int DM_UPDATE = 1;
        public const int DM_YRESOLUTION = 0x2000;
        public const int DOWNLOADFACE = 514;
        public const int DOWNLOADHEADER = 4111;
        public const int DRAFTMODE = 7;
        public const int DRAFT_QUALITY = 1;
        public const int DRAWPATTERNRECT = 25;
        public const int DRIVERVERSION = 0;
        public const int DSTINVERT = 0x550009;
        public const int DT_CHARSTREAM = 4;
        public const int DT_DISPFILE = 6;
        public const int DT_METAFILE = 5;
        public const int DT_PLOTTER = 0;
        public const int DT_RASCAMERA = 3;
        public const int DT_RASDISPLAY = 1;
        public const int DT_RASPRINTER = 2;
        public const int EASTEUROPE_CHARSET = 238;
        public const int ELF_CULTURE_LATIN = 0;
        public const int ELF_VENDOR_SIZE = 4;
        public const int ELF_VERSION = 0;
        public const int ENABLEDUPLEX = 28;
        public const int ENABLEPAIRKERNING = 769;
        public const int ENABLERELATIVEWIDTHS = 768;
        public const int ENCAPSULATED_POSTSCRIPT = 4116;
        public const int END_PATH = 4098;
        public const int ENHMETA_SIGNATURE = 0x464D4520;
        public const int ENHMETA_STOCK_OBJECT = unchecked((int)0x80000000);
        public const int ENUMPAPERBINS = 31;
        public const int ENUMPAPERMETRICS = 34;
        public const int EPSPRINTING = 33;
        public const int ERROR = 0;
        public const int ETO_CLIPPED = 4;
        public const int ETO_GRAYED = 1;
        public const int ETO_OPAQUE = 2;
        public const int EXT_DEVICE_CAPS = 4099;
        public const int EndDocC = 11;
        public const int ExtTextOutC = 512;
        public const int FF_DECORATIVE = 80;
        public const int FF_DONTCARE = 0;
        public const int FF_MODERN = 48;
        public const int FF_ROMAN = 16;
        public const int FF_SCRIPT = 64;
        public const int FF_SWISS = 32;
        public const int FIXED_PITCH = 1;
        public const int FLI_GLYPHS = 0x40000;
        public const int FLI_MASK = 0x103B;
        public const int FLOODFILLBORDER = 0;
        public const int FLOODFILLSURFACE = 1;
        public const int FLUSHOUTPUT = 6;
        public const int FONTMAPPER_MAX = 10;
        public const int FS_ARABIC = 0x40;
        public const int FS_BALTIC = 0x80;
        public const int FS_CHINESESIMP = 0x40000;
        public const int FS_CHINESETRAD = 0x100000;
        public const int FS_CYRILLIC = 0x4;
        public const int FS_GREEK = 0x8;
        public const int FS_HEBREW = 0x20;
        public const int FS_JISJAPAN = 0x20000;
        public const int FS_JOHAB = 0x200000;
        public const int FS_LATIN1 = 0x1;
        public const int FS_LATIN2 = 0x2;
        public const int FS_SYMBOL = unchecked((int)0x80000000);
        public const int FS_THAI = 0x10000;
        public const int FS_TURKISH = 0x10;
        public const int FS_WANSUNG = 0x80000;
        public const int FW_BLACK = FW_HEAVY;
        public const int FW_BOLD = 700;
        public const int FW_DEMIBOLD = FW_SEMIBOLD;
        public const int FW_DONTCARE = 0;
        public const int FW_EXTRABOLD = 800;
        public const int FW_EXTRALIGHT = 200;
        public const int FW_HEAVY = 900;
        public const int FW_LIGHT = 300;
        public const int FW_MEDIUM = 500;
        public const int FW_NORMAL = 400;
        public const int FW_REGULAR = FW_NORMAL;
        public const int FW_SEMIBOLD = 600;
        public const int FW_THIN = 100;
        public const int FW_ULTRABOLD = FW_EXTRABOLD;
        public const int FW_ULTRALIGHT = FW_EXTRALIGHT;
        public const int GCPCLASS_ARABIC = 2;
        public const int GCPCLASS_HEBREW = 2;
        public const int GCPCLASS_LATIN = 1;
        public const int GCPCLASS_LATINNUMBER = 5;
        public const int GCPCLASS_LATINNUMERICSEPARATOR = 7;
        public const int GCPCLASS_LATINNUMERICTERMINATOR = 6;
        public const int GCPCLASS_LOCALNUMBER = 4;
        public const int GCPCLASS_NEUTRAL = 3;
        public const int GCPCLASS_NUMERICSEPARATOR = 8;
        public const int GCPCLASS_PREBOUNDLTR = 0x40;
        public const int GCPCLASS_PREBOUNDRTL = 0x80;
        public const int GCP_CLASSIN = 0x80000;
        public const int GCP_DBCS = 0x1;
        public const int GCP_DIACRITIC = 0x100;
        public const int GCP_DISPLAYZWG = 0x400000;
        public const int GCP_ERROR = 0x8000;
        public const int GCP_GLYPHSHAPE = 0x10;
        public const int GCP_JUSTIFY = 0x10000;
        public const int GCP_JUSTIFYIN = 0x200000;
        public const int GCP_KASHIDA = 0x400;
        public const int GCP_LIGATE = 0x20;
        public const int GCP_MAXEXTENT = 0x100000;
        public const int GCP_NEUTRALOVERRIDE = 0x2000000;
        public const int GCP_NODIACRITICS = 0x20000;
        public const int GCP_NUMERICOVERRIDE = 0x1000000;
        public const int GCP_NUMERICSLATIN = 0x4000000;
        public const int GCP_NUMERICSLOCAL = 0x8000000;
        public const int GCP_REORDER = 0x2;
        public const int GCP_SYMSWAPOFF = 0x800000;
        public const int GCP_USEKERNING = 0x8;
        public const int GDI_ERROR = 0xFFFF;
        public const int GETCOLORTABLE = 5;
        public const int GETDEVICEUNITS = 42;
        public const int GETEXTENDEDTEXTMETRICS = 256;
        public const int GETEXTENTTABLE = 257;
        public const int GETFACENAME = 513;
        public const int GETPAIRKERNTABLE = 258;
        public const int GETPENWIDTH = 16;
        public const int GETPHYSPAGESIZE = 12;
        public const int GETPRINTINGOFFSET = 13;
        public const int GETSCALINGFACTOR = 14;
        public const int GETSETPAPERBINS = 29;
        public const int GETSETPAPERMETRICS = 35;
        public const int GETSETPRINTORIENT = 30;
        public const int GETSETSCREENPARAMS = 3072;
        public const int GETTECHNOLGY = 20;
        public const int GETTECHNOLOGY = 20;
        public const int GETTRACKKERNTABLE = 259;
        public const int GETVECTORBRUSHSIZE = 27;
        public const int GETVECTORPENSIZE = 26;
        public const int GGO_BITMAP = 1;
        public const int GGO_GLYPH_INDEX = 0x80;
        public const int GGO_GRAY2_BITMAP = 4;
        public const int GGO_GRAY4_BITMAP = 5;
        public const int GGO_GRAY8_BITMAP = 6;
        public const int GGO_METRICS = 0;
        public const int GGO_NATIVE = 2;
        public const int GM_ADVANCED = 2;
        public const int GM_COMPATIBLE = 1;
        public const int GM_LAST = 2;
        public const int GRAY_BRUSH = 2;
        public const int GREEK_CHARSET = 161;
        public const int HALFTONE = 4;
        public const int HANGEUL_CHARSET = 129;
        public const int HEBREW_CHARSET = 177;
        public const int HGDI_ERROR = 0xFFFF;
        public const int HOLLOW_BRUSH = NULL_BRUSH;
        public const int HORZRES = 8;
        public const int HORZSIZE = 4;
        public const int HS_API_MAX = 25;
        public const int HS_BDIAGONAL = 3;
        public const int HS_BDIAGONAL1 = 7;
        public const int HS_CROSS = 4;
        public const int HS_DENSE1 = 9;
        public const int HS_DENSE2 = 10;
        public const int HS_DENSE3 = 11;
        public const int HS_DENSE4 = 12;
        public const int HS_DENSE5 = 13;
        public const int HS_DENSE6 = 14;
        public const int HS_DENSE7 = 15;
        public const int HS_DENSE8 = 16;
        public const int HS_DIAGCROSS = 5;
        public const int HS_DITHEREDBKCLR = 24;
        public const int HS_DITHEREDCLR = 20;
        public const int HS_DITHEREDTEXTCLR = 22;
        public const int HS_FDIAGONAL = 2;
        public const int HS_FDIAGONAL1 = 6;
        public const int HS_HALFTONE = 18;
        public const int HS_HORIZONTAL = 0;
        public const int HS_NOSHADE = 17;
        public const int HS_SOLID = 8;
        public const int HS_SOLIDBKCLR = 23;
        public const int HS_SOLIDCLR = 19;
        public const int HS_SOLIDTEXTCLR = 21;
        public const int HS_VERTICAL = 1;
        public const int ICM_OFF = 1;
        public const int ICM_ON = 2;
        public const int ICM_QUERY = 3;
        public const int ILLUMINANT_A = 1;
        public const int ILLUMINANT_B = 2;
        public const int ILLUMINANT_C = 3;
        public const int ILLUMINANT_D50 = 4;
        public const int ILLUMINANT_D55 = 5;
        public const int ILLUMINANT_D65 = 6;
        public const int ILLUMINANT_D75 = 7;
        public const int ILLUMINANT_DAYLIGHT = ILLUMINANT_C;
        public const int ILLUMINANT_DEVICE_DEFAULT = 0;
        public const int ILLUMINANT_F2 = 8;
        public const int ILLUMINANT_FLUORESCENT = ILLUMINANT_F2;
        public const int ILLUMINANT_MAX_INDEX = ILLUMINANT_F2;
        public const int ILLUMINANT_NTSC = ILLUMINANT_C;
        public const int ILLUMINANT_TUNGSTEN = ILLUMINANT_A;
        public const int JOHAB_CHARSET = 130;
        public const int LC_INTERIORS = 128;
        public const int LC_MARKER = 4;
        public const int LC_NONE = 0;
        public const int LC_POLYLINE = 2;
        public const int LC_POLYMARKER = 8;
        public const int LC_STYLED = 32;
        public const int LC_WIDE = 16;
        public const int LC_WIDESTYLED = 64;
        public const int LF_FACESIZE = 32;
        public const int LF_FULLFACESIZE = 64;
        public const int LINECAPS = 30;
        public const int LOGPIXELSX = 88;
        public const int LOGPIXELSY = 90;
        public const int LTGRAY_BRUSH = 1;
        public const int MAC_CHARSET = 77;
        public const int MAXSTRETCHBLTMODE = 4;
        public const int MERGECOPY = 0xC000CA;
        public const int MERGEPAINT = 0xBB0226;
        public const int META_ANIMATEPALETTE = 0x436;
        public const int META_ARC = 0x817;
        public const int META_BITBLT = 0x922;
        public const int META_CHORD = 0x830;
        public const int META_CREATEBRUSHINDIRECT = 0x2FC;
        public const int META_CREATEFONTINDIRECT = 0x2FB;
        public const int META_CREATEPALETTE = 0xF7;
        public const int META_CREATEPATTERNBRUSH = 0x1F9;
        public const int META_CREATEPENINDIRECT = 0x2FA;
        public const int META_CREATEREGION = 0x6FF;
        public const int META_DELETEOBJECT = 0x1F0;
        public const int META_DIBBITBLT = 0x940;
        public const int META_DIBCREATEPATTERNBRUSH = 0x142;
        public const int META_DIBSTRETCHBLT = 0xB41;
        public const int META_ELLIPSE = 0x418;
        public const int META_ESCAPE = 0x626;
        public const int META_EXCLUDECLIPRECT = 0x415;
        public const int META_EXTFLOODFILL = 0x548;
        public const int META_EXTTEXTOUT = 0xA32;
        public const int META_FILLREGION = 0x228;
        public const int META_FLOODFILL = 0x419;
        public const int META_FRAMEREGION = 0x429;
        public const int META_INTERSECTCLIPRECT = 0x416;
        public const int META_INVERTREGION = 0x12A;
        public const int META_LINETO = 0x213;
        public const int META_MOVETO = 0x214;
        public const int META_OFFSETCLIPRGN = 0x220;
        public const int META_OFFSETVIEWPORTORG = 0x211;
        public const int META_OFFSETWINDOWORG = 0x20F;
        public const int META_PAINTREGION = 0x12B;
        public const int META_PATBLT = 0x61D;
        public const int META_PIE = 0x81A;
        public const int META_POLYGON = 0x324;
        public const int META_POLYLINE = 0x325;
        public const int META_POLYPOLYGON = 0x538;
        public const int META_REALIZEPALETTE = 0x35;
        public const int META_RECTANGLE = 0x41B;
        public const int META_RESIZEPALETTE = 0x139;
        public const int META_RESTOREDC = 0x127;
        public const int META_ROUNDRECT = 0x61C;
        public const int META_SAVEDC = 0x1E;
        public const int META_SCALEVIEWPORTEXT = 0x412;
        public const int META_SCALEWINDOWEXT = 0x410;
        public const int META_SELECTCLIPREGION = 0x12C;
        public const int META_SELECTOBJECT = 0x12D;
        public const int META_SELECTPALETTE = 0x234;
        public const int META_SETBKCOLOR = 0x201;
        public const int META_SETBKMODE = 0x102;
        public const int META_SETDIBTODEV = 0xD33;
        public const int META_SETMAPMODE = 0x103;
        public const int META_SETMAPPERFLAGS = 0x231;
        public const int META_SETPALENTRIES = 0x37;
        public const int META_SETPIXEL = 0x41F;
        public const int META_SETPOLYFILLMODE = 0x106;
        public const int META_SETRELABS = 0x105;
        public const int META_SETROP2 = 0x104;
        public const int META_SETSTRETCHBLTMODE = 0x107;
        public const int META_SETTEXTALIGN = 0x12E;
        public const int META_SETTEXTCHAREXTRA = 0x108;
        public const int META_SETTEXTCOLOR = 0x209;
        public const int META_SETTEXTJUSTIFICATION = 0x20A;
        public const int META_SETVIEWPORTEXT = 0x20E;
        public const int META_SETVIEWPORTORG = 0x20D;
        public const int META_SETWINDOWEXT = 0x20C;
        public const int META_SETWINDOWORG = 0x20B;
        public const int META_STRETCHBLT = 0xB23;
        public const int META_STRETCHDIB = 0xF43;
        public const int META_TEXTOUT = 0x521;
        public const int MFCOMMENT = 15;
        public const int MM_ANISOTROPIC = 8;
        public const int MM_HIENGLISH = 5;
        public const int MM_HIMETRIC = 3;
        public const int MM_ISOTROPIC = 7;
        public const int MM_LOENGLISH = 4;
        public const int MM_LOMETRIC = 2;
        public const int MM_MAX = MM_ANISOTROPIC;
        public const int MM_MAX_FIXEDSCALE = MM_TWIPS;
        public const int MM_MIN = MM_TEXT;
        public const int MM_TEXT = 1;
        public const int MM_TWIPS = 6;
        public const int MONO_FONT = 8;
        public const int MOUSETRAILS = 39;
        public const int MWT_IDENTITY = 1;
        public const int MWT_LEFTMULTIPLY = 2;
        public const int MWT_MAX = MWT_RIGHTMULTIPLY;
        public const int MWT_MIN = MWT_IDENTITY;
        public const int MWT_RIGHTMULTIPLY = 3;
        public const int NEWFRAME = 1;
        public const int NEXTBAND = 3;
        public const int NOTSRCCOPY = 0x330008;
        public const int NOTSRCERASE = 0x1100A6;
        public const int NTM_BOLD = 0x20;
        public const int NTM_ITALIC = 0x1;
        public const int NTM_REGULAR = 0x40;
        public const int NULLREGION = 1;
        public const int NULL_BRUSH = 5;
        public const int NULL_PEN = 8;
        public const int NUMBRUSHES = 16;
        public const int NUMCOLORS = 24;
        public const int NUMFONTS = 22;
        public const int NUMMARKERS = 20;
        public const int NUMPENS = 18;
        public const int NUMRESERVED = 106;
        public const int OBJ_BITMAP = 7;
        public const int OBJ_BRUSH = 2;
        public const int OBJ_DC = 3;
        public const int OBJ_ENHMETADC = 12;
        public const int OBJ_ENHMETAFILE = 13;
        public const int OBJ_EXTPEN = 11;
        public const int OBJ_FONT = 6;
        public const int OBJ_MEMDC = 10;
        public const int OBJ_METADC = 4;
        public const int OBJ_METAFILE = 9;
        public const int OBJ_PAL = 5;
        public const int OBJ_PEN = 1;
        public const int OBJ_REGION = 8;
        public const int OEM_CHARSET = 255;
        public const int OEM_FIXED_FONT = 10;
        public const int OPAQUE = 2;
        public const int OPENCHANNEL = 4110;
        public const int OUT_CHARACTER_PRECIS = 2;
        public const int OUT_DEFAULT_PRECIS = 0;
        public const int OUT_DEVICE_PRECIS = 5;
        public const int OUT_OUTLINE_PRECIS = 8;
        public const int OUT_RASTER_PRECIS = 6;
        public const int OUT_STRING_PRECIS = 1;
        public const int OUT_STROKE_PRECIS = 3;
        public const int OUT_TT_ONLY_PRECIS = 7;
        public const int OUT_TT_PRECIS = 4;
        public const int PANOSE_COUNT = 10;
        public const int PAN_ANY = 0;
        public const int PAN_ARMSTYLE_INDEX = 6;
        public const int PAN_BENT_ARMS_DOUBLE_SERIF = 11;
        public const int PAN_BENT_ARMS_HORZ = 7;
        public const int PAN_BENT_ARMS_SINGLE_SERIF = 10;
        public const int PAN_BENT_ARMS_VERT = 9;
        public const int PAN_BENT_ARMS_WEDGE = 8;
        public const int PAN_CONTRAST_HIGH = 8;
        public const int PAN_CONTRAST_INDEX = 4;
        public const int PAN_CONTRAST_LOW = 4;
        public const int PAN_CONTRAST_MEDIUM = 6;
        public const int PAN_CONTRAST_MEDIUM_HIGH = 7;
        public const int PAN_CONTRAST_MEDIUM_LOW = 5;
        public const int PAN_CONTRAST_NONE = 2;
        public const int PAN_CONTRAST_VERY_HIGH = 9;
        public const int PAN_CONTRAST_VERY_LOW = 3;
        public const int PAN_CULTURE_LATIN = 0;
        public const int PAN_FAMILYTYPE_INDEX = 0;
        public const int PAN_FAMILY_DECORATIVE = 4;
        public const int PAN_FAMILY_PICTORIAL = 5;
        public const int PAN_FAMILY_SCRIPT = 3;
        public const int PAN_FAMILY_TEXT_DISPLAY = 2;
        public const int PAN_LETTERFORM_INDEX = 7;
        public const int PAN_LETT_NORMAL_BOXED = 4;
        public const int PAN_LETT_NORMAL_CONTACT = 2;
        public const int PAN_LETT_NORMAL_FLATTENED = 5;
        public const int PAN_LETT_NORMAL_OFF_CENTER = 7;
        public const int PAN_LETT_NORMAL_ROUNDED = 6;
        public const int PAN_LETT_NORMAL_SQUARE = 8;
        public const int PAN_LETT_NORMAL_WEIGHTED = 3;
        public const int PAN_LETT_OBLIQUE_BOXED = 11;
        public const int PAN_LETT_OBLIQUE_CONTACT = 9;
        public const int PAN_LETT_OBLIQUE_FLATTENED = 12;
        public const int PAN_LETT_OBLIQUE_OFF_CENTER = 14;
        public const int PAN_LETT_OBLIQUE_ROUNDED = 13;
        public const int PAN_LETT_OBLIQUE_SQUARE = 15;
        public const int PAN_LETT_OBLIQUE_WEIGHTED = 10;
        public const int PAN_MIDLINE_CONSTANT_POINTED = 9;
        public const int PAN_MIDLINE_CONSTANT_SERIFED = 10;
        public const int PAN_MIDLINE_CONSTANT_TRIMMED = 8;
        public const int PAN_MIDLINE_HIGH_POINTED = 6;
        public const int PAN_MIDLINE_HIGH_SERIFED = 7;
        public const int PAN_MIDLINE_HIGH_TRIMMED = 5;
        public const int PAN_MIDLINE_INDEX = 8;
        public const int PAN_MIDLINE_LOW_POINTED = 12;
        public const int PAN_MIDLINE_LOW_SERIFED = 13;
        public const int PAN_MIDLINE_LOW_TRIMMED = 11;
        public const int PAN_MIDLINE_STANDARD_POINTED = 3;
        public const int PAN_MIDLINE_STANDARD_SERIFED = 4;
        public const int PAN_MIDLINE_STANDARD_TRIMMED = 2;
        public const int PAN_NO_FIT = 1;
        public const int PAN_PROPORTION_INDEX = 3;
        public const int PAN_PROP_CONDENSED = 6;
        public const int PAN_PROP_EVEN_WIDTH = 4;
        public const int PAN_PROP_EXPANDED = 5;
        public const int PAN_PROP_MODERN = 3;
        public const int PAN_PROP_MONOSPACED = 9;
        public const int PAN_PROP_OLD_STYLE = 2;
        public const int PAN_PROP_VERY_CONDENSED = 8;
        public const int PAN_PROP_VERY_EXPANDED = 7;
        public const int PAN_SERIFSTYLE_INDEX = 1;
        public const int PAN_SERIF_BONE = 8;
        public const int PAN_SERIF_COVE = 2;
        public const int PAN_SERIF_EXAGGERATED = 9;
        public const int PAN_SERIF_FLARED = 14;
        public const int PAN_SERIF_NORMAL_SANS = 11;
        public const int PAN_SERIF_OBTUSE_COVE = 3;
        public const int PAN_SERIF_OBTUSE_SANS = 12;
        public const int PAN_SERIF_OBTUSE_SQUARE_COVE = 5;
        public const int PAN_SERIF_PERP_SANS = 13;
        public const int PAN_SERIF_ROUNDED = 15;
        public const int PAN_SERIF_SQUARE = 6;
        public const int PAN_SERIF_SQUARE_COVE = 4;
        public const int PAN_SERIF_THIN = 7;
        public const int PAN_SERIF_TRIANGLE = 10;
        public const int PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6;
        public const int PAN_STRAIGHT_ARMS_HORZ = 2;
        public const int PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5;
        public const int PAN_STRAIGHT_ARMS_VERT = 4;
        public const int PAN_STRAIGHT_ARMS_WEDGE = 3;
        public const int PAN_STROKEVARIATION_INDEX = 5;
        public const int PAN_STROKE_GRADUAL_DIAG = 2;
        public const int PAN_STROKE_GRADUAL_HORZ = 5;
        public const int PAN_STROKE_GRADUAL_TRAN = 3;
        public const int PAN_STROKE_GRADUAL_VERT = 4;
        public const int PAN_STROKE_INSTANT_VERT = 8;
        public const int PAN_STROKE_RAPID_HORZ = 7;
        public const int PAN_STROKE_RAPID_VERT = 6;
        public const int PAN_WEIGHT_BLACK = 10;
        public const int PAN_WEIGHT_BOLD = 8;
        public const int PAN_WEIGHT_BOOK = 5;
        public const int PAN_WEIGHT_DEMI = 7;
        public const int PAN_WEIGHT_HEAVY = 9;
        public const int PAN_WEIGHT_INDEX = 2;
        public const int PAN_WEIGHT_LIGHT = 3;
        public const int PAN_WEIGHT_MEDIUM = 6;
        public const int PAN_WEIGHT_NORD = 11;
        public const int PAN_WEIGHT_THIN = 4;
        public const int PAN_WEIGHT_VERY_LIGHT = 2;
        public const int PAN_XHEIGHT_CONSTANT_LARGE = 4;
        public const int PAN_XHEIGHT_CONSTANT_SMALL = 2;
        public const int PAN_XHEIGHT_CONSTANT_STD = 3;
        public const int PAN_XHEIGHT_DUCKING_LARGE = 7;
        public const int PAN_XHEIGHT_DUCKING_SMALL = 5;
        public const int PAN_XHEIGHT_DUCKING_STD = 6;
        public const int PAN_XHEIGHT_INDEX = 9;
        public const int PASSTHROUGH = 19;
        public const int PATCOPY = 0xF00021;
        public const int PATINVERT = 0x5A0049;
        public const int PATPAINT = 0xFB0A09;
        public const int PC_EXPLICIT = 0x2;
        public const int PC_INTERIORS = 128;
        public const int PC_NOCOLLAPSE = 0x4;
        public const int PC_NONE = 0;
        public const int PC_POLYGON = 1;
        public const int PC_RECTANGLE = 2;
        public const int PC_RESERVED = 0x1;
        public const int PC_SCANLINE = 8;
        public const int PC_STYLED = 32;
        public const int PC_TRAPEZOID = 4;
        public const int PC_WIDE = 16;
        public const int PC_WIDESTYLED = 64;
        public const int PC_WINDPOLYGON = 4;
        public const int PDEVICESIZE = 26;
        public const int PHYSICALHEIGHT = 111;
        public const int PHYSICALOFFSETX = 112;
        public const int PHYSICALOFFSETY = 113;
        public const int PHYSICALWIDTH = 110;
        public const int PLANES = 14;
        public const int POLYFILL_LAST = 2;
        public const int POLYGONALCAPS = 32;
        public const int POSTSCRIPT_DATA = 37;
        public const int POSTSCRIPT_IGNORE = 38;
        public const int POSTSCRIPT_PASSTHROUGH = 4115;
        public const int PROOF_QUALITY = 2;
        public const int PR_JOBSTATUS = 0x0;
        public const int PS_ALTERNATE = 8;
        public const int PS_COSMETIC = 0x0;
        public const int PS_DASH = 1;
        public const int PS_DASHDOT = 3;
        public const int PS_DASHDOTDOT = 4;
        public const int PS_DOT = 2;
        public const int PS_ENDCAP_FLAT = 0x200;
        public const int PS_ENDCAP_MASK = 0xF00;
        public const int PS_ENDCAP_ROUND = 0x0;
        public const int PS_ENDCAP_SQUARE = 0x100;
        public const int PS_GEOMETRIC = 0x10000;
        public const int PS_INSIDEFRAME = 6;
        public const int PS_JOIN_BEVEL = 0x1000;
        public const int PS_JOIN_MASK = 0xF000;
        public const int PS_JOIN_MITER = 0x2000;
        public const int PS_JOIN_ROUND = 0x0;
        public const int PS_NULL = 5;
        public const int PS_SOLID = 0;
        public const int PS_STYLE_MASK = 0xF;
        public const int PS_TYPE_MASK = 0xF0000;
        public const int PS_USERSTYLE = 7;
        public const int PT_BEZIERTO = 0x4;
        public const int PT_CLOSEFIGURE = 0x1;
        public const int PT_LINETO = 0x2;
        public const int PT_MOVETO = 0x6;
        public const int QUERYESCSUPPORT = 8;
        public const int R2_BLACK = 1;
        public const int R2_COPYPEN = 13;
        public const int R2_LAST = 16;
        public const int R2_MASKNOTPEN = 3;
        public const int R2_MASKPEN = 9;
        public const int R2_MASKPENNOT = 5;
        public const int R2_MERGENOTPEN = 12;
        public const int R2_MERGEPEN = 15;
        public const int R2_MERGEPENNOT = 14;
        public const int R2_NOP = 11;
        public const int R2_NOT = 6;
        public const int R2_NOTCOPYPEN = 4;
        public const int R2_NOTMASKPEN = 8;
        public const int R2_NOTMERGEPEN = 2;
        public const int R2_NOTXORPEN = 10;
        public const int R2_WHITE = 16;
        public const int R2_XORPEN = 7;
        public const int RASTERCAPS = 38;
        public const int RASTER_FONTTYPE = 0x1;
        public const int RC_BANDING = 2;
        public const int RC_BIGFONT = 0x400;
        public const int RC_BITBLT = 1;
        public const int RC_BITMAP64 = 8;
        public const int RC_DEVBITS = 0x8000;
        public const int RC_DIBTODEV = 0x200;
        public const int RC_DI_BITMAP = 0x80;
        public const int RC_FLOODFILL = 0x1000;
        public const int RC_GDI20_OUTPUT = 0x10;
        public const int RC_GDI20_STATE = 0x20;
        public const int RC_NONE = 0;
        public const int RC_OP_DX_OUTPUT = 0x4000;
        public const int RC_PALETTE = 0x100;
        public const int RC_SAVEBITMAP = 0x40;
        public const int RC_SCALING = 4;
        public const int RC_STRETCHBLT = 0x800;
        public const int RC_STRETCHDIB = 0x2000;
        public const int RDH_RECTANGLES = 1;
        public const int REFERENCE_BLACK_MAX = 4000;
        public const int REFERENCE_BLACK_MIN = 0;
        public const int REFERENCE_WHITE_MAX = 10000;
        public const int REFERENCE_WHITE_MIN = 6000;
        public const int RELATIVE = 2;
        public const int RESTORE_CTM = 4100;
        public const int RGB_GAMMA_MAX = 65000;
        public const int RGB_GAMMA_MIN = 2500;
        public const int RGN_AND = 1;
        public const int RGN_COPY = 5;
        public const int RGN_DIFF = 4;
        public const int RGN_MAX = RGN_COPY;
        public const int RGN_MIN = RGN_AND;
        public const int RGN_OR = 2;
        public const int RGN_XOR = 3;
        public const int RUSSIAN_CHARSET = 204;
        public const int SAVE_CTM = 4101;
        public const int SCALINGFACTORX = 114;
        public const int SCALINGFACTORY = 115;
        public const int SELECTPAPERSOURCE = 18;
        public const int SETABORTPROC_CONST = 9;
        public const int SETALLJUSTVALUES = 771;
        public const int SETCHARSET = 772;
        public const int SETCOLORTABLE = 4;
        public const int SETCOPYCOUNT = 17;
        public const int SETDIBSCALING = 32;
        public const int SETKERNTRACK = 770;
        public const int SETLINECAP = 21;
        public const int SETLINEJOIN = 22;
        public const int SET_ARC_DIRECTION = 4102;
        public const int SET_BACKGROUND_COLOR = 4103;
        public const int SET_BOUNDS = 4109;
        public const int SET_CLIP_BOX = 4108;
        public const int SET_MIRROR_MODE = 4110;
        public const int SET_POLY_MODE = 4104;
        public const int SET_SCREEN_ANGLE = 4105;
        public const int SET_SPREAD = 4106;
        public const int SHIFTJIS_CHARSET = 128;
        public const int SIMPLEREGION = 2;
        public const int SIZEPALETTE = 104;
        public const int SP_APPABORT = (-2);
        public const int SP_ERROR = (-1);
        public const int SP_NOTREPORTED = 0x4000;
        public const int SP_OUTOFDISK = (-4);
        public const int SP_OUTOFMEMORY = (-5);
        public const int SP_USERABORT = (-3);
        public const int SRCAND = 0x8800C6;
        public const int SRCCOPY = 0xCC0020;
        public const int SRCERASE = 0x440328;
        public const int SRCINVERT = 0x660046;
        public const int SRCPAINT = 0xEE0086;
        public const int STOCK_LAST = 16;
        public const int STRETCH_ANDSCANS = 1;
        public const int STRETCH_DELETESCANS = 3;
        public const int STRETCH_HALFTONE = 4;
        public const int STRETCH_ORSCANS = 2;
        public const int SYMBOL_CHARSET = 2;
        public const int SYSPAL_ERROR = 0;
        public const int SYSPAL_NOSTATIC = 2;
        public const int SYSPAL_STATIC = 1;
        public const int SYSTEM_FIXED_FONT = 16;
        public const int SYSTEM_FONT = 13;
        public const int SetMiterLimitC = 23;
        public const int StartDocC = 10;
        public const int StretchBltC = 2048;
        public const int TA_BASELINE = 24;
        public const int TA_BOTTOM = 8;
        public const int TA_CENTER = 6;
        public const int TA_LEFT = 0;
        public const int TA_MASK = (TA_BASELINE + TA_CENTER + TA_UPDATECP);
        public const int TA_NOUPDATECP = 0;
        public const int TA_RIGHT = 2;
        public const int TA_TOP = 0;
        public const int TA_UPDATECP = 1;
        public const int TCI_SRCCHARSET = 1;
        public const int TCI_SRCCODEPAGE = 2;
        public const int TCI_SRCFONTSIG = 3;
        public const int TC_CP_STROKE = 0x4;
        public const int TC_CR_90 = 0x8;
        public const int TC_CR_ANY = 0x10;
        public const int TC_EA_DOUBLE = 0x200;
        public const int TC_IA_ABLE = 0x400;
        public const int TC_OP_CHARACTER = 0x1;
        public const int TC_OP_STROKE = 0x2;
        public const int TC_RA_ABLE = 0x2000;
        public const int TC_RESERVED = 0x8000;
        public const int TC_SA_CONTIN = 0x100;
        public const int TC_SA_DOUBLE = 0x40;
        public const int TC_SA_INTEGER = 0x80;
        public const int TC_SCROLLBLT = 0x10000;
        public const int TC_SF_X_YINDEP = 0x20;
        public const int TC_SO_ABLE = 0x1000;
        public const int TC_UA_ABLE = 0x800;
        public const int TC_VA_ABLE = 0x4000;
        public const int TECHNOLOGY = 2;
        public const int TEXTCAPS = 34;
        public const int THAI_CHARSET = 222;
        public const int TMPF_DEVICE = 0x8;
        public const int TMPF_FIXED_PITCH = 0x1;
        public const int TMPF_TRUETYPE = 0x4;
        public const int TMPF_VECTOR = 0x2;
        public const int TRANSFORM_CTM = 4107;
        public const int TRANSPARENT = 1;
        public const int TRUETYPE_FONTTYPE = 0x4;
        public const int TT_AVAILABLE = 0x1;
        public const int TT_ENABLED = 0x2;
        public const int TT_POLYGON_TYPE = 24;
        public const int TT_PRIM_LINE = 1;
        public const int TT_PRIM_QSPLINE = 2;
        public const int TURKISH_CHARSET = 162;
        public const int VARIABLE_PITCH = 2;
        public const int VERTRES = 10;
        public const int VERTSIZE = 6;
        public const int VTA_BASELINE = TA_BASELINE;
        public const int VTA_BOTTOM = TA_RIGHT;
        public const int VTA_CENTER = TA_CENTER;
        public const int VTA_LEFT = TA_BOTTOM;
        public const int VTA_RIGHT = TA_TOP;
        public const int VTA_TOP = TA_LEFT;
        public const int WHITENESS = 0xFF0062;
        public const int WHITEONBLACK = 2;
        public const int WHITE_BRUSH = 0;
        public const int WHITE_PEN = 6;
        public const int WINDING = 2;

        public const int CACHE_E_FIRST = unchecked((int)0x80040170);
        public const int CACHE_E_LAST = unchecked((int)0x8004017F);
        public const int CACHE_E_NOCACHE_UPDATED = unchecked((int)0x80040170);
        public const int CACHE_S_FIRST = 0x40170;
        public const int CACHE_S_FORMATETC_NOTSUPPORTED = 0x40170;
        public const int CACHE_S_LAST = 0x4017F;
        public const int CACHE_S_SAMECACHE = 0x40171;
        public const int CACHE_S_SOMECACHES_NOTUPDATED = 0x40172;
        public const int CLASSFACTORY_E_FIRST = unchecked((int)0x80040110);
        public const int CLASSFACTORY_E_LAST = unchecked((int)0x8004011F);
        public const int CLASSFACTORY_S_FIRST = 0x40110;
        public const int CLASSFACTORY_S_LAST = 0x4011F;
        public const int CLASS_E_CLASSNOTAVAILABLE = unchecked((int)0x80040111);
        public const int CLASS_E_NOAGGREGATION = unchecked((int)0x80040110);
        public const int CLIENTSITE_E_FIRST = unchecked((int)0x80040190);
        public const int CLIENTSITE_E_LAST = unchecked((int)0x8004019F);
        public const int CLIENTSITE_S_FIRST = 0x40190;
        public const int CLIENTSITE_S_LAST = 0x4019F;
        public const int CLIPBRD_E_BAD_DATA = unchecked((int)0x800401D3);
        public const int CLIPBRD_E_CANT_CLOSE = unchecked((int)0x800401D4);
        public const int CLIPBRD_E_CANT_EMPTY = unchecked((int)0x800401D1);
        public const int CLIPBRD_E_CANT_OPEN = unchecked((int)0x800401D0);
        public const int CLIPBRD_E_CANT_SET = unchecked((int)0x800401D2);
        public const int CLIPBRD_E_FIRST = unchecked((int)0x800401D0);
        public const int CLIPBRD_E_LAST = unchecked((int)0x800401DF);
        public const int CLIPBRD_S_FIRST = 0x401D0;
        public const int CLIPBRD_S_LAST = 0x401DF;
        public const int CONVERT10_E_FIRST = unchecked((int)0x800401C0);
        public const int CONVERT10_E_LAST = unchecked((int)0x800401CF);
        public const int CONVERT10_E_OLESTREAM_BITMAP_TO_DIB = unchecked((int)0x800401C3);
        public const int CONVERT10_E_OLESTREAM_FMT = unchecked((int)0x800401C2);
        public const int CONVERT10_E_OLESTREAM_GET = unchecked((int)0x800401C0);
        public const int CONVERT10_E_OLESTREAM_PUT = unchecked((int)0x800401C1);
        public const int CONVERT10_E_STG_DIB_TO_BITMAP = unchecked((int)0x800401C6);
        public const int CONVERT10_E_STG_FMT = unchecked((int)0x800401C4);
        public const int CONVERT10_E_STG_NO_STD_STREAM = unchecked((int)0x800401C5);
        public const int CONVERT10_S_FIRST = 0x401C0;
        public const int CONVERT10_S_LAST = 0x401CF;
        public const int CONVERT10_S_NO_PRESENTATION = 0x401C0;
        public const int CO_E_ALREADYINITIALIZED = unchecked((int)0x800401F1);
        public const int CO_E_APPDIDNTREG = unchecked((int)0x800401FE);
        public const int CO_E_APPNOTFOUND = unchecked((int)0x800401F5);
        public const int CO_E_APPSINGLEUSE = unchecked((int)0x800401F6);
        public const int CO_E_BAD_PATH = unchecked((int)0x80080004);
        public const int CO_E_CANTDETERMINECLASS = unchecked((int)0x800401F2);
        public const int CO_E_CLASSSTRING = unchecked((int)0x800401F3);
        public const int CO_E_CLASS_CREATE_FAILED = unchecked((int)0x80080001);
        public const int CO_E_DLLNOTFOUND = unchecked((int)0x800401F8);
        public const int CO_E_ERRORINAPP = unchecked((int)0x800401F7);
        public const int CO_E_ERRORINDLL = unchecked((int)0x800401F9);
        public const int CO_E_FIRST = unchecked((int)0x800401F0);
        public const int CO_E_IIDSTRING = unchecked((int)0x800401F4);
        public const int CO_E_INIT_CLASS_CACHE = unchecked((int)0x80004009);
        public const int CO_E_INIT_MEMORY_ALLOCATOR = unchecked((int)0x80004008);
        public const int CO_E_INIT_ONLY_SINGLE_THREADED = unchecked((int)0x80004012);
        public const int CO_E_INIT_RPC_CHANNEL = unchecked((int)0x8000400A);
        public const int CO_E_INIT_SCM_EXEC_FAILURE = unchecked((int)0x80004011);
        public const int CO_E_INIT_SCM_FILE_MAPPING_EXISTS = unchecked((int)0x8000400F);
        public const int CO_E_INIT_SCM_MAP_VIEW_OF_FILE = unchecked((int)0x80004010);
        public const int CO_E_INIT_SCM_MUTEX_EXISTS = unchecked((int)0x8000400E);
        public const int CO_E_INIT_SHARED_ALLOCATOR = unchecked((int)0x80004007);
        public const int CO_E_INIT_TLS = unchecked((int)0x80004006);
        public const int CO_E_INIT_TLS_CHANNEL_CONTROL = unchecked((int)0x8000400C);
        public const int CO_E_INIT_TLS_SET_CHANNEL_CONTROL = unchecked((int)0x8000400B);
        public const int CO_E_INIT_UNACCEPTED_USER_ALLOCATOR = unchecked((int)0x8000400D);
        public const int CO_E_LAST = unchecked((int)0x800401FF);
        public const int CO_E_NOTINITIALIZED = unchecked((int)0x800401F0);
        public const int CO_E_OBJISREG = unchecked((int)0x800401FC);
        public const int CO_E_OBJNOTCONNECTED = unchecked((int)0x800401FD);
        public const int CO_E_OBJNOTREG = unchecked((int)0x800401FB);
        public const int CO_E_OBJSRV_RPC_FAILURE = unchecked((int)0x80080006);
        public const int CO_E_RELEASED = unchecked((int)0x800401FF);
        public const int CO_E_SCM_ERROR = unchecked((int)0x80080002);
        public const int CO_E_SCM_RPC_FAILURE = unchecked((int)0x80080003);
        public const int CO_E_SERVER_EXEC_FAILURE = unchecked((int)0x80080005);
        public const int CO_E_SERVER_STOPPING = unchecked((int)0x80080008);
        public const int CO_E_WRONGOSFORAPP = unchecked((int)0x800401FA);
        public const int CO_S_FIRST = 0x401F0;
        public const int CO_S_LAST = 0x401FF;
        public const int DATA_E_FIRST = unchecked((int)0x80040130);
        public const int DATA_E_LAST = unchecked((int)0x8004013F);
        public const int DATA_S_FIRST = 0x40130;
        public const int DATA_S_LAST = 0x4013F;
        public const int DATA_S_SAMEFORMATETC = 0x40130;
        public const int DISP_E_ARRAYISLOCKED = unchecked((int)0x8002000D);
        public const int DISP_E_BADCALLEE = unchecked((int)0x80020010);
        public const int DISP_E_BADINDEX = unchecked((int)0x8002000B);
        public const int DISP_E_BADPARAMCOUNT = unchecked((int)0x8002000E);
        public const int DISP_E_BADVARTYPE = unchecked((int)0x80020008);
        public const int DISP_E_EXCEPTION = unchecked((int)0x80020009);
        public const int DISP_E_MEMBERNOTFOUND = unchecked((int)0x80020003);
        public const int DISP_E_NONAMEDARGS = unchecked((int)0x80020007);
        public const int DISP_E_NOTACOLLECTION = unchecked((int)0x80020011);
        public const int DISP_E_OVERFLOW = unchecked((int)0x8002000A);
        public const int DISP_E_PARAMNOTFOUND = unchecked((int)0x80020004);
        public const int DISP_E_PARAMNOTOPTIONAL = unchecked((int)0x8002000F);
        public const int DISP_E_TYPEMISMATCH = unchecked((int)0x80020005);
        public const int DISP_E_UNKNOWNINTERFACE = unchecked((int)0x80020001);
        public const int DISP_E_UNKNOWNLCID = unchecked((int)0x8002000C);
        public const int DISP_E_UNKNOWNNAME = unchecked((int)0x80020006);
        public const int DRAGDROP_E_ALREADYREGISTERED = unchecked((int)0x80040101);
        public const int DRAGDROP_E_FIRST = unchecked((int)0x80040100);
        public const int DRAGDROP_E_INVALIDHWND = unchecked((int)0x80040102);
        public const int DRAGDROP_E_LAST = unchecked((int)0x8004010F);
        public const int DRAGDROP_E_NOTREGISTERED = unchecked((int)0x80040100);
        public const int DRAGDROP_S_CANCEL = 0x40101;
        public const int DRAGDROP_S_DROP = 0x40100;
        public const int DRAGDROP_S_FIRST = 0x40100;
        public const int DRAGDROP_S_LAST = 0x4010F;
        public const int DRAGDROP_S_USEDEFAULTCURSORS = 0x40102;
        public const int DV_E_CLIPFORMAT = unchecked((int)0x8004006A);
        public const int DV_E_DVASPECT = unchecked((int)0x8004006B);
        public const int DV_E_DVTARGETDEVICE = unchecked((int)0x80040065);
        public const int DV_E_DVTARGETDEVICE_SIZE = unchecked((int)0x8004006C);
        public const int DV_E_FORMATETC = unchecked((int)0x80040064);
        public const int DV_E_LINDEX = unchecked((int)0x80040068);
        public const int DV_E_NOIVIEWOBJECT = unchecked((int)0x8004006D);
        public const int DV_E_STATDATA = unchecked((int)0x80040067);
        public const int DV_E_STGMEDIUM = unchecked((int)0x80040066);
        public const int DV_E_TYMED = unchecked((int)0x80040069);
        public const int ENUM_E_FIRST = unchecked((int)0x800401B0);
        public const int ENUM_E_LAST = unchecked((int)0x800401BF);
        public const int ENUM_S_FIRST = 0x401B0;
        public const int ENUM_S_LAST = 0x401BF;
        public const int EPT_S_CANT_CREATE = 1899;
        public const int EPT_S_CANT_PERFORM_OP = 1752;
        public const int EPT_S_INVALID_ENTRY = 1751;
        public const int EPT_S_NOT_REGISTERED = 1753;
        public const int ERROR_ACCESS_DENIED = 5;
        public const int ERROR_ACCOUNT_DISABLED = 1331;
        public const int ERROR_ACCOUNT_EXPIRED = 1793;
        public const int ERROR_ACCOUNT_RESTRICTION = 1327;
        public const int ERROR_ADAP_HDW_ERR = 57;
        public const int ERROR_ALIAS_EXISTS = 1379;
        public const int ERROR_ALLOTTED_SPACE_EXCEEDED = 1344;
        public const int ERROR_ALREADY_ASSIGNED = 85;
        public const int ERROR_ALREADY_EXISTS = 183;
        public const int ERROR_ALREADY_RUNNING_LKG = 1074;
        public const int ERROR_ALREADY_WAITING = 1904;
        public const int ERROR_ARENA_TRASHED = 7;
        public const int ERROR_ARITHMETIC_OVERFLOW = 534;
        public const int ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = 174;
        public const int ERROR_AUTODATASEG_EXCEEDS_64k = 199;
        public const int ERROR_BADDB = 1009;
        public const int ERROR_BADKEY = 1010;
        public const int ERROR_BAD_ARGUMENTS = 160;
        public const int ERROR_BAD_COMMAND = 22;
        public const int ERROR_BAD_DESCRIPTOR_FORMAT = 1361;
        public const int ERROR_BAD_DEVICE = 1200;
        public const int ERROR_BAD_DEV_TYPE = 66;
        public const int ERROR_BAD_DRIVER = 2001;
        public const int ERROR_BAD_DRIVER_LEVEL = 119;
        public const int ERROR_BAD_ENVIRONMENT = 10;
        public const int ERROR_BAD_EXE_FORMAT = 193;
        public const int ERROR_BAD_FORMAT = 11;
        public const int ERROR_BAD_IMPERSONATION_LEVEL = 1346;
        public const int ERROR_BAD_INHERITANCE_ACL = 1340;
        public const int ERROR_BAD_LENGTH = 24;
        public const int ERROR_BAD_LOGON_SESSION_STATE = 1365;
        public const int ERROR_BAD_NETPATH = 53;
        public const int ERROR_BAD_NET_NAME = 67;
        public const int ERROR_BAD_NET_RESP = 58;
        public const int ERROR_BAD_PATHNAME = 161;
        public const int ERROR_BAD_PIPE = 230;
        public const int ERROR_BAD_PROFILE = 1206;
        public const int ERROR_BAD_PROVIDER = 1204;
        public const int ERROR_BAD_REM_ADAP = 60;
        public const int ERROR_BAD_THREADID_ADDR = 159;
        public const int ERROR_BAD_TOKEN_TYPE = 1349;
        public const int ERROR_BAD_UNIT = 20;
        public const int ERROR_BAD_USERNAME = 2202;
        public const int ERROR_BAD_VALIDATION_CLASS = 1348;
        public const int ERROR_BEGINNING_OF_MEDIA = 1102;
        public const int ERROR_BOOT_ALREADY_ACCEPTED = 1076;
        public const int ERROR_BROKEN_PIPE = 109;
        public const int ERROR_BUFFER_OVERFLOW = 111;
        public const int ERROR_BUSY = 170;
        public const int ERROR_BUSY_DRIVE = 142;
        public const int ERROR_BUS_RESET = 1111;
        public const int ERROR_CALL_NOT_IMPLEMENTED = 120;
        public const int ERROR_CANCEL_VIOLATION = 173;
        public const int ERROR_CANNOT_COPY = 266;
        public const int ERROR_CANNOT_FIND_WND_CLASS = 1407;
        public const int ERROR_CANNOT_IMPERSONATE = 1368;
        public const int ERROR_CANNOT_MAKE = 82;
        public const int ERROR_CANNOT_OPEN_PROFILE = 1205;
        public const int ERROR_CANTOPEN = 1011;
        public const int ERROR_CANTREAD = 1012;
        public const int ERROR_CANTWRITE = 1013;
        public const int ERROR_CANT_ACCESS_DOMAIN_INFO = 1351;
        public const int ERROR_CANT_DISABLE_MANDATORY = 1310;
        public const int ERROR_CANT_OPEN_ANONYMOUS = 1347;
        public const int ERROR_CAN_NOT_COMPLETE = 1003;
        public const int ERROR_CAN_NOT_DEL_LOCAL_WINS = 4001;
        public const int ERROR_CHILD_MUST_BE_VOLATILE = 1021;
        public const int ERROR_CHILD_NOT_COMPLETE = 129;
        public const int ERROR_CHILD_WINDOW_MENU = 1436;
        public const int ERROR_CIRCULAR_DEPENDENCY = 1059;
        public const int ERROR_CLASS_ALREADY_EXISTS = 1410;
        public const int ERROR_CLASS_DOES_NOT_EXIST = 1411;
        public const int ERROR_CLASS_HAS_WINDOWS = 1412;
        public const int ERROR_CLIPBOARD_NOT_OPEN = 1418;
        public const int ERROR_CLIPPING_NOT_SUPPORTED = 2005;
        public const int ERROR_CONNECTION_UNAVAIL = 1201;
        public const int ERROR_CONTROL_ID_NOT_FOUND = 1421;
        public const int ERROR_COUNTER_TIMEOUT = 1121;
        public const int ERROR_CRC = 23;
        public const int ERROR_CURRENT_DIRECTORY = 16;
        public const int ERROR_DATABASE_DOES_NOT_EXIST = 1065;
        public const int ERROR_DC_NOT_FOUND = 1425;
        public const int ERROR_DEPENDENT_SERVICES_RUNNING = 1051;
        public const int ERROR_DESTROY_OBJECT_OF_OTHER_THREAD = 1435;
        public const int ERROR_DEVICE_ALREADY_REMEMBERED = 1202;
        public const int ERROR_DEVICE_IN_USE = 2404;
        public const int ERROR_DEVICE_NOT_PARTITIONED = 1107;
        public const int ERROR_DEV_NOT_EXIST = 55;
        public const int ERROR_DIRECTORY = 267;
        public const int ERROR_DIRECT_ACCESS_HANDLE = 130;
        public const int ERROR_DIR_NOT_EMPTY = 145;
        public const int ERROR_DIR_NOT_ROOT = 144;
        public const int ERROR_DISCARDED = 157;
        public const int ERROR_DISK_CHANGE = 107;
        public const int ERROR_DISK_CORRUPT = 1393;
        public const int ERROR_DISK_FULL = 112;
        public const int ERROR_DISK_OPERATION_FAILED = 1127;
        public const int ERROR_DISK_RECALIBRATE_FAILED = 1126;
        public const int ERROR_DISK_RESET_FAILED = 1128;
        public const int ERROR_DLL_INIT_FAILED = 1114;
        public const int ERROR_DOMAIN_EXISTS = 1356;
        public const int ERROR_DOMAIN_LIMIT_EXCEEDED = 1357;
        public const int ERROR_DOMAIN_TRUST_INCONSISTENT = 1810;
        public const int ERROR_DRIVE_LOCKED = 108;
        public const int ERROR_DUPLICATE_SERVICE_NAME = 1078;
        public const int ERROR_DUP_DOMAINNAME = 1221;
        public const int ERROR_DUP_NAME = 52;
        public const int ERROR_DYNLINK_FROM_INVALID_RING = 196;
        public const int ERROR_EAS_DIDNT_FIT = 275;
        public const int ERROR_EAS_NOT_SUPPORTED = 282;
        public const int ERROR_EA_ACCESS_DENIED = 994;
        public const int ERROR_EA_FILE_CORRUPT = 276;
        public const int ERROR_EA_LIST_INCONSISTENT = 255;
        public const int ERROR_EA_TABLE_FULL = 277;
        public const int ERROR_END_OF_MEDIA = 1100;
        public const int ERROR_ENVVAR_NOT_FOUND = 203;
        public const int ERROR_EOM_OVERFLOW = 1129;
        public const int ERROR_EVENTLOG_CANT_START = 1501;
        public const int ERROR_EVENTLOG_FILE_CHANGED = 1503;
        public const int ERROR_EVENTLOG_FILE_CORRUPT = 1500;
        public const int ERROR_EXCEPTION_IN_SERVICE = 1064;
        public const int ERROR_EXCL_SEM_ALREADY_OWNED = 101;
        public const int ERROR_EXE_MARKED_INVALID = 192;
        public const int ERROR_EXTENDED_ERROR = 1208;
        public const int ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = 1063;
        public const int ERROR_FAIL_I24 = 83;
        public const int ERROR_FILEMARK_DETECTED = 1101;
        public const int ERROR_FILENAME_EXCED_RANGE = 206;
        public const int ERROR_FILE_CORRUPT = 1392;
        public const int ERROR_FILE_EXISTS = 80;
        public const int ERROR_FILE_INVALID = 1006;
        public const int ERROR_FILE_NOT_FOUND = 2;
        public const int ERROR_FLOPPY_BAD_REGISTERS = 1125;
        public const int ERROR_FLOPPY_ID_MARK_NOT_FOUND = 1122;
        public const int ERROR_FLOPPY_UNKNOWN_ERROR = 1124;
        public const int ERROR_FLOPPY_WRONG_CYLINDER = 1123;
        public const int ERROR_FULLSCREEN_MODE = 1007;
        public const int ERROR_FULL_BACKUP = 4004;
        public const int ERROR_GENERIC_NOT_MAPPED = 1360;
        public const int ERROR_GEN_FAILURE = 31;
        public const int ERROR_GROUP_EXISTS = 1318;
        public const int ERROR_HANDLE_DISK_FULL = 39;
        public const int ERROR_HANDLE_EOF = 38;
        public const int ERROR_HOOK_NEEDS_HMOD = 1428;
        public const int ERROR_HOOK_NOT_INSTALLED = 1431;
        public const int ERROR_HOTKEY_ALREADY_REGISTERED = 1409;
        public const int ERROR_HOTKEY_NOT_REGISTERED = 1419;
        public const int ERROR_HWNDS_HAVE_DIFF_PARENT = 1441;
        public const int ERROR_ILL_FORMED_PASSWORD = 1324;
        public const int ERROR_INC_BACKUP = 4003;
        public const int ERROR_INFLOOP_IN_RELOC_CHAIN = 202;
        public const int ERROR_INSUFFICIENT_BUFFER = 122;
        public const int ERROR_INTERNAL_DB_CORRUPTION = 1358;
        public const int ERROR_INTERNAL_DB_ERROR = 1383;
        public const int ERROR_INTERNAL_ERROR = 1359;
        public const int ERROR_INVALID_ACCEL_HANDLE = 1403;
        public const int ERROR_INVALID_ACCESS = 12;
        public const int ERROR_INVALID_ACCOUNT_NAME = 1315;
        public const int ERROR_INVALID_ACL = 1336;
        public const int ERROR_INVALID_ADDRESS = 487;
        public const int ERROR_INVALID_AT_INTERRUPT_TIME = 104;
        public const int ERROR_INVALID_BLOCK = 9;
        public const int ERROR_INVALID_BLOCK_LENGTH = 1106;
        public const int ERROR_INVALID_CATEGORY = 117;
        public const int ERROR_INVALID_COMBOBOX_MESSAGE = 1422;
        public const int ERROR_INVALID_COMPUTERNAME = 1210;
        public const int ERROR_INVALID_CURSOR_HANDLE = 1402;
        public const int ERROR_INVALID_DATA = 13;
        public const int ERROR_INVALID_DATATYPE = 1804;
        public const int ERROR_INVALID_DOMAINNAME = 1212;
        public const int ERROR_INVALID_DOMAIN_ROLE = 1354;
        public const int ERROR_INVALID_DOMAIN_STATE = 1353;
        public const int ERROR_INVALID_DRIVE = 15;
        public const int ERROR_INVALID_DWP_HANDLE = 1405;
        public const int ERROR_INVALID_EA_HANDLE = 278;
        public const int ERROR_INVALID_EA_NAME = 254;
        public const int ERROR_INVALID_EDIT_HEIGHT = 1424;
        public const int ERROR_INVALID_ENVIRONMENT = 1805;
        public const int ERROR_INVALID_EVENTNAME = 1211;
        public const int ERROR_INVALID_EVENT_COUNT = 151;
        public const int ERROR_INVALID_EXE_SIGNATURE = 191;
        public const int ERROR_INVALID_FILTER_PROC = 1427;
        public const int ERROR_INVALID_FLAGS = 1004;
        public const int ERROR_INVALID_FLAG_NUMBER = 186;
        public const int ERROR_INVALID_FORM_NAME = 1902;
        public const int ERROR_INVALID_FORM_SIZE = 1903;
        public const int ERROR_INVALID_FUNCTION = 1;
        public const int ERROR_INVALID_GROUPNAME = 1209;
        public const int ERROR_INVALID_GROUP_ATTRIBUTES = 1345;
        public const int ERROR_INVALID_GW_COMMAND = 1443;
        public const int ERROR_INVALID_HANDLE = 6;
        public const int ERROR_INVALID_HANDLE_STATE = 1609;
        public const int ERROR_INVALID_HOOK_FILTER = 1426;
        public const int ERROR_INVALID_HOOK_HANDLE = 1404;
        public const int ERROR_INVALID_ICON_HANDLE = 1414;
        public const int ERROR_INVALID_ID_AUTHORITY = 1343;
        public const int ERROR_INVALID_INDEX = 1413;
        public const int ERROR_INVALID_LB_MESSAGE = 1432;
        public const int ERROR_INVALID_LEVEL = 124;
        public const int ERROR_INVALID_LIST_FORMAT = 153;
        public const int ERROR_INVALID_LOGON_HOURS = 1328;
        public const int ERROR_INVALID_LOGON_TYPE = 1367;
        public const int ERROR_INVALID_MEMBER = 1388;
        public const int ERROR_INVALID_MENU_HANDLE = 1401;
        public const int ERROR_INVALID_MESSAGE = 1002;
        public const int ERROR_INVALID_MESSAGEDEST = 1218;
        public const int ERROR_INVALID_MESSAGENAME = 1217;
        public const int ERROR_INVALID_MINALLOCSIZE = 195;
        public const int ERROR_INVALID_MODULETYPE = 190;
        public const int ERROR_INVALID_MSGBOX_STYLE = 1438;
        public const int ERROR_INVALID_NAME = 123;
        public const int ERROR_INVALID_NETNAME = 1214;
        public const int ERROR_INVALID_ORDINAL = 182;
        public const int ERROR_INVALID_OWNER = 1307;
        public const int ERROR_INVALID_PARAMETER = 87;
        public const int ERROR_INVALID_PASSWORD = 86;
        public const int ERROR_INVALID_PASSWORDNAME = 1216;
        public const int ERROR_INVALID_PIXEL_FORMAT = 2000;
        public const int ERROR_INVALID_PRIMARY_GROUP = 1308;
        public const int ERROR_INVALID_PRINTER_COMMAND = 1803;
        public const int ERROR_INVALID_PRINTER_NAME = 1801;
        public const int ERROR_INVALID_PRINTER_STATE = 1906;
        public const int ERROR_INVALID_PRIORITY = 1800;
        public const int ERROR_INVALID_SCROLLBAR_RANGE = 1448;
        public const int ERROR_INVALID_SECURITY_DESCR = 1338;
        public const int ERROR_INVALID_SEGDPL = 198;
        public const int ERROR_INVALID_SEGMENT_NUMBER = 180;
        public const int ERROR_INVALID_SEPARATOR_FILE = 1799;
        public const int ERROR_INVALID_SERVER_STATE = 1352;
        public const int ERROR_INVALID_SERVICENAME = 1213;
        public const int ERROR_INVALID_SERVICE_ACCOUNT = 1057;
        public const int ERROR_INVALID_SERVICE_CONTROL = 1052;
        public const int ERROR_INVALID_SERVICE_LOCK = 1071;
        public const int ERROR_INVALID_SHARENAME = 1215;
        public const int ERROR_INVALID_SHOWWIN_COMMAND = 1449;
        public const int ERROR_INVALID_SID = 1337;
        public const int ERROR_INVALID_SIGNAL_NUMBER = 209;
        public const int ERROR_INVALID_SPI_VALUE = 1439;
        public const int ERROR_INVALID_STACKSEG = 189;
        public const int ERROR_INVALID_STARTING_CODESEG = 188;
        public const int ERROR_INVALID_SUB_AUTHORITY = 1335;
        public const int ERROR_INVALID_TARGET_HANDLE = 114;
        public const int ERROR_INVALID_THREAD_ID = 1444;
        public const int ERROR_INVALID_TIME = 1901;
        public const int ERROR_INVALID_USER_BUFFER = 1784;
        public const int ERROR_INVALID_VERIFY_SWITCH = 118;
        public const int ERROR_INVALID_WINDOW_HANDLE = 1400;
        public const int ERROR_INVALID_WINDOW_STYLE = 2002;
        public const int ERROR_INVALID_WORKSTATION = 1329;
        public const int ERROR_IOPL_NOT_ENABLED = 197;
        public const int ERROR_IO_DEVICE = 1117;
        public const int ERROR_IO_INCOMPLETE = 996;
        public const int ERROR_IO_PENDING = 997;
        public const int ERROR_IRQ_BUSY = 1119;
        public const int ERROR_IS_JOINED = 134;
        public const int ERROR_IS_JOIN_PATH = 147;
        public const int ERROR_IS_JOIN_TARGET = 133;
        public const int ERROR_IS_SUBSTED = 135;
        public const int ERROR_IS_SUBST_PATH = 146;
        public const int ERROR_IS_SUBST_TARGET = 149;
        public const int ERROR_ITERATED_DATA_EXCEEDS_64k = 194;
        public const int ERROR_JOIN_TO_JOIN = 138;
        public const int ERROR_JOIN_TO_SUBST = 140;
        public const int ERROR_JOURNAL_HOOK_SET = 1430;
        public const int ERROR_KEY_DELETED = 1018;
        public const int ERROR_KEY_HAS_CHILDREN = 1020;
        public const int ERROR_LABEL_TOO_LONG = 154;
        public const int ERROR_LAST_ADMIN = 1322;
        public const int ERROR_LB_WITHOUT_TABSTOPS = 1434;
        public const int ERROR_LISTBOX_ID_NOT_FOUND = 1416;
        public const int ERROR_LM_CROSS_ENCRYPTION_REQUIRED = 1390;
        public const int ERROR_LOCAL_USER_SESSION_KEY = 1303;
        public const int ERROR_LOCKED = 212;
        public const int ERROR_LOCK_FAILED = 167;
        public const int ERROR_LOCK_VIOLATION = 33;
        public const int ERROR_LOGON_FAILURE = 1326;
        public const int ERROR_LOGON_NOT_GRANTED = 1380;
        public const int ERROR_LOGON_SESSION_COLLISION = 1366;
        public const int ERROR_LOGON_SESSION_EXISTS = 1363;
        public const int ERROR_LOGON_TYPE_NOT_GRANTED = 1385;
        public const int ERROR_LOG_FILE_FULL = 1502;
        public const int ERROR_LUIDS_EXHAUSTED = 1334;
        public const int ERROR_MAPPED_ALIGNMENT = 1132;
        public const int ERROR_MAX_THRDS_REACHED = 164;
        public const int ERROR_MEDIA_CHANGED = 1110;
        public const int ERROR_MEMBERS_PRIMARY_GROUP = 1374;
        public const int ERROR_MEMBER_IN_ALIAS = 1378;
        public const int ERROR_MEMBER_IN_GROUP = 1320;
        public const int ERROR_MEMBER_NOT_IN_ALIAS = 1377;
        public const int ERROR_MEMBER_NOT_IN_GROUP = 1321;
        public const int ERROR_METAFILE_NOT_SUPPORTED = 2003;
        public const int ERROR_META_EXPANSION_TOO_LONG = 208;
        public const int ERROR_MOD_NOT_FOUND = 126;
        public const int ERROR_MORE_DATA = 234;
        public const int ERROR_MORE_WRITES = 1120;
        public const int ERROR_MR_MID_NOT_FOUND = 317;
        public const int ERROR_NEGATIVE_SEEK = 131;
        public const int ERROR_NESTING_NOT_ALLOWED = 215;
        public const int ERROR_NETLOGON_NOT_STARTED = 1792;
        public const int ERROR_NETNAME_DELETED = 64;
        public const int ERROR_NETWORK_ACCESS_DENIED = 65;
        public const int ERROR_NETWORK_BUSY = 54;
        public const int ERROR_NET_WRITE_FAULT = 88;
        public const int ERROR_NOACCESS = 998;
        public const int ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 1807;
        public const int ERROR_NOLOGON_SERVER_TRUST_ACCOUNT = 1809;
        public const int ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 1808;
        public const int ERROR_NONE_MAPPED = 1332;
        public const int ERROR_NON_MDICHILD_WINDOW = 1445;
        public const int ERROR_NOTIFY_ENUM_DIR = 1022;
        public const int ERROR_NOT_ALL_ASSIGNED = 1300;
        public const int ERROR_NOT_CHILD_WINDOW = 1442;
        public const int ERROR_NOT_CONNECTED = 2250;
        public const int ERROR_NOT_CONTAINER = 1207;
        public const int ERROR_NOT_DOS_DISK = 26;
        public const int ERROR_NOT_ENOUGH_MEMORY = 8;
        public const int ERROR_NOT_ENOUGH_QUOTA = 1816;
        public const int ERROR_NOT_ENOUGH_SERVER_MEMORY = 1130;
        public const int ERROR_NOT_JOINED = 136;
        public const int ERROR_NOT_LOCKED = 158;
        public const int ERROR_NOT_LOGON_PROCESS = 1362;
        public const int ERROR_NOT_OWNER = 288;
        public const int ERROR_NOT_READY = 21;
        public const int ERROR_NOT_REGISTRY_FILE = 1017;
        public const int ERROR_NOT_SAME_DEVICE = 17;
        public const int ERROR_NOT_SUBSTED = 137;
        public const int ERROR_NOT_SUPPORTED = 50;
        public const int ERROR_NO_BROWSER_SERVERS_FOUND = 6118;
        public const int ERROR_NO_DATA = 232;
        public const int ERROR_NO_DATA_DETECTED = 1104;
        public const int ERROR_NO_IMPERSONATION_TOKEN = 1309;
        public const int ERROR_NO_INHERITANCE = 1391;
        public const int ERROR_NO_LOGON_SERVERS = 1311;
        public const int ERROR_NO_LOG_SPACE = 1019;
        public const int ERROR_NO_MEDIA_IN_DRIVE = 1112;
        public const int ERROR_NO_MORE_FILES = 18;
        public const int ERROR_NO_MORE_ITEMS = 259;
        public const int ERROR_NO_MORE_SEARCH_HANDLES = 113;
        public const int ERROR_NO_NETWORK = 1222;
        public const int ERROR_NO_NET_OR_BAD_PATH = 1203;
        public const int ERROR_NO_PROC_SLOTS = 89;
        public const int ERROR_NO_QUOTAS_FOR_ACCOUNT = 1302;
        public const int ERROR_NO_SCROLLBARS = 1447;
        public const int ERROR_NO_SECURITY_ON_OBJECT = 1350;
        public const int ERROR_NO_SHUTDOWN_IN_PROGRESS = 1116;
        public const int ERROR_NO_SIGNAL_SENT = 205;
        public const int ERROR_NO_SPOOL_SPACE = 62;
        public const int ERROR_NO_SUCH_ALIAS = 1376;
        public const int ERROR_NO_SUCH_DOMAIN = 1355;
        public const int ERROR_NO_SUCH_GROUP = 1319;
        public const int ERROR_NO_SUCH_LOGON_SESSION = 1312;
        public const int ERROR_NO_SUCH_MEMBER = 1387;
        public const int ERROR_NO_SUCH_PACKAGE = 1364;
        public const int ERROR_NO_SUCH_PRIVILEGE = 1313;
        public const int ERROR_NO_SUCH_USER = 1317;
        public const int ERROR_NO_SYSTEM_MENU = 1437;
        public const int ERROR_NO_TOKEN = 1008;
        public const int ERROR_NO_TRUST_LSA_SECRET = 1786;
        public const int ERROR_NO_TRUST_SAM_ACCOUNT = 1787;
        public const int ERROR_NO_UNICODE_TRANSLATION = 1113;
        public const int ERROR_NO_USER_SESSION_KEY = 1394;
        public const int ERROR_NO_VOLUME_LABEL = 125;
        public const int ERROR_NO_WILDCARD_CHARACTERS = 1417;
        public const int ERROR_NT_CROSS_ENCRYPTION_REQUIRED = 1386;
        public const int ERROR_NULL_LM_PASSWORD = 1304;
        public const int ERROR_OPEN_FAILED = 110;
        public const int ERROR_OPEN_FILES = 2401;
        public const int ERROR_OPERATION_ABORTED = 995;
        public const int ERROR_OUTOFMEMORY = 14;
        public const int ERROR_OUT_OF_PAPER = 28;
        public const int ERROR_OUT_OF_STRUCTURES = 84;
        public const int ERROR_PARTITION_FAILURE = 1105;
        public const int ERROR_PASSWORD_EXPIRED = 1330;
        public const int ERROR_PASSWORD_RESTRICTION = 1325;
        public const int ERROR_PATH_BUSY = 148;
        public const int ERROR_PATH_NOT_FOUND = 3;
        public const int ERROR_PIPE_BUSY = 231;
        public const int ERROR_PIPE_CONNECTED = 535;
        public const int ERROR_PIPE_LISTENING = 536;
        public const int ERROR_PIPE_NOT_CONNECTED = 233;
        public const int ERROR_POPUP_ALREADY_ACTIVE = 1446;
        public const int ERROR_POSSIBLE_DEADLOCK = 1131;
        public const int ERROR_PRINTER_ALREADY_EXISTS = 1802;
        public const int ERROR_PRINTER_DELETED = 1905;
        public const int ERROR_PRINTER_DRIVER_ALREADY_INSTALLED = 1795;
        public const int ERROR_PRINTER_DRIVER_IN_USE = 3001;
        public const int ERROR_PRINTQ_FULL = 61;
        public const int ERROR_PRINT_CANCELLED = 63;
        public const int ERROR_PRINT_MONITOR_ALREADY_INSTALLED = 3006;
        public const int ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED = 3005;
        public const int ERROR_PRIVATE_DIALOG_INDEX = 1415;
        public const int ERROR_PRIVILEGE_NOT_HELD = 1314;
        public const int ERROR_PROCESS_ABORTED = 1067;
        public const int ERROR_PROC_NOT_FOUND = 127;
        public const int ERROR_PUBLIC_ONLY_HOOK = 1429;
        public const int ERROR_READ_FAULT = 30;
        public const int ERROR_REC_NON_EXISTENT = 4005;
        public const int ERROR_REDIRECTOR_HAS_OPEN_HANDLES = 1794;
        public const int ERROR_REDIR_PAUSED = 72;
        public const int ERROR_REGISTRY_CORRUPT = 1015;
        public const int ERROR_REGISTRY_IO_FAILED = 1016;
        public const int ERROR_REGISTRY_RECOVERED = 1014;
        public const int ERROR_RELOC_CHAIN_XEEDS_SEGLIM = 201;
        public const int ERROR_REMOTE_SESSION_LIMIT_EXCEEDED = 1220;
        public const int ERROR_REM_NOT_LIST = 51;
        public const int ERROR_REQ_NOT_ACCEP = 71;
        public const int ERROR_RESOURCE_DATA_NOT_FOUND = 1812;
        public const int ERROR_RESOURCE_LANG_NOT_FOUND = 1815;
        public const int ERROR_RESOURCE_NAME_NOT_FOUND = 1814;
        public const int ERROR_RESOURCE_TYPE_NOT_FOUND = 1813;
        public const int ERROR_REVISION_MISMATCH = 1306;
        public const int ERROR_RING2SEG_MUST_BE_MOVABLE = 200;
        public const int ERROR_RING2_STACK_IN_USE = 207;
        public const int ERROR_RPL_NOT_ALLOWED = 4006;
        public const int ERROR_RXACT_COMMIT_FAILURE = 1370;
        public const int ERROR_RXACT_INVALID_STATE = 1369;
        public const int ERROR_SAME_DRIVE = 143;
        public const int ERROR_SCREEN_ALREADY_LOCKED = 1440;
        public const int ERROR_SECRET_TOO_LONG = 1382;
        public const int ERROR_SECTOR_NOT_FOUND = 27;
        public const int ERROR_SEEK = 25;
        public const int ERROR_SEEK_ON_DEVICE = 132;
        public const int ERROR_SEM_IS_SET = 102;
        public const int ERROR_SEM_NOT_FOUND = 187;
        public const int ERROR_SEM_OWNER_DIED = 105;
        public const int ERROR_SEM_TIMEOUT = 121;
        public const int ERROR_SEM_USER_LIMIT = 106;
        public const int ERROR_SERIAL_NO_DEVICE = 1118;
        public const int ERROR_SERVER_DISABLED = 1341;
        public const int ERROR_SERVER_HAS_OPEN_HANDLES = 1811;
        public const int ERROR_SERVER_NOT_DISABLED = 1342;
        public const int ERROR_SERVICE_ALREADY_RUNNING = 1056;
        public const int ERROR_SERVICE_CANNOT_ACCEPT_CTRL = 1061;
        public const int ERROR_SERVICE_DATABASE_LOCKED = 1055;
        public const int ERROR_SERVICE_DEPENDENCY_DELETED = 1075;
        public const int ERROR_SERVICE_DEPENDENCY_FAIL = 1068;
        public const int ERROR_SERVICE_DISABLED = 1058;
        public const int ERROR_SERVICE_DOES_NOT_EXIST = 1060;
        public const int ERROR_SERVICE_EXISTS = 1073;
        public const int ERROR_SERVICE_LOGON_FAILED = 1069;
        public const int ERROR_SERVICE_MARKED_FOR_DELETE = 1072;
        public const int ERROR_SERVICE_NEVER_STARTED = 1077;
        public const int ERROR_SERVICE_NOT_ACTIVE = 1062;
        public const int ERROR_SERVICE_NO_THREAD = 1054;
        public const int ERROR_SERVICE_REQUEST_TIMEOUT = 1053;
        public const int ERROR_SERVICE_SPECIFIC_ERROR = 1066;
        public const int ERROR_SERVICE_START_HANG = 1070;
        public const int ERROR_SESSION_CREDENTIAL_CONFLICT = 1219;
        public const int ERROR_SETCOUNT_ON_BAD_LB = 1433;
        public const int ERROR_SETMARK_DETECTED = 1103;
        public const int ERROR_SHARING_BUFFER_EXCEEDED = 36;
        public const int ERROR_SHARING_PAUSED = 70;
        public const int ERROR_SHARING_VIOLATION = 32;
        public const int ERROR_SHUTDOWN_IN_PROGRESS = 1115;
        public const int ERROR_SIGNAL_PENDING = 162;
        public const int ERROR_SIGNAL_REFUSED = 156;
        public const int ERROR_SOME_NOT_MAPPED = 1301;
        public const int ERROR_SPECIAL_ACCOUNT = 1371;
        public const int ERROR_SPECIAL_GROUP = 1372;
        public const int ERROR_SPECIAL_USER = 1373;
        public const int ERROR_SPL_NO_ADDJOB = 3004;
        public const int ERROR_SPL_NO_STARTDOC = 3003;
        public const int ERROR_SPOOL_FILE_NOT_FOUND = 3002;
        public const int ERROR_STACK_OVERFLOW = 1001;
        public const int ERROR_STATIC_INIT = 4002;
        public const int ERROR_SUBST_TO_JOIN = 141;
        public const int ERROR_SUBST_TO_SUBST = 139;
        public const int ERROR_SUCCESS = 0;
        public const int ERROR_SWAPERROR = 999;
        public const int ERROR_SYSTEM_TRACE = 150;
        public const int ERROR_THREAD_1_INACTIVE = 210;
        public const int ERROR_TLW_WITH_WSCHILD = 1406;
        public const int ERROR_TOKEN_ALREADY_IN_USE = 1375;
        public const int ERROR_TOO_MANY_CMDS = 56;
        public const int ERROR_TOO_MANY_CONTEXT_IDS = 1384;
        public const int ERROR_TOO_MANY_LUIDS_REQUESTED = 1333;
        public const int ERROR_TOO_MANY_MODULES = 214;
        public const int ERROR_TOO_MANY_MUXWAITERS = 152;
        public const int ERROR_TOO_MANY_NAMES = 68;
        public const int ERROR_TOO_MANY_OPEN_FILES = 4;
        public const int ERROR_TOO_MANY_POSTS = 298;
        public const int ERROR_TOO_MANY_SECRETS = 1381;
        public const int ERROR_TOO_MANY_SEMAPHORES = 100;
        public const int ERROR_TOO_MANY_SEM_REQUESTS = 103;
        public const int ERROR_TOO_MANY_SESS = 69;
        public const int ERROR_TOO_MANY_SIDS = 1389;
        public const int ERROR_TOO_MANY_TCBS = 155;
        public const int ERROR_TRANSFORM_NOT_SUPPORTED = 2004;
        public const int ERROR_TRUSTED_DOMAIN_FAILURE = 1788;
        public const int ERROR_TRUSTED_RELATIONSHIP_FAILURE = 1789;
        public const int ERROR_TRUST_FAILURE = 1790;
        public const int ERROR_UNABLE_TO_LOCK_MEDIA = 1108;
        public const int ERROR_UNABLE_TO_UNLOAD_MEDIA = 1109;
        public const int ERROR_UNEXP_NET_ERR = 59;
        public const int ERROR_UNKNOWN_PORT = 1796;
        public const int ERROR_UNKNOWN_PRINTER_DRIVER = 1797;
        public const int ERROR_UNKNOWN_PRINTPROCESSOR = 1798;
        public const int ERROR_UNKNOWN_PRINT_MONITOR = 3000;
        public const int ERROR_UNKNOWN_REVISION = 1305;
        public const int ERROR_UNRECOGNIZED_MEDIA = 1785;
        public const int ERROR_UNRECOGNIZED_VOLUME = 1005;
        public const int ERROR_USER_EXISTS = 1316;
        public const int ERROR_VC_DISCONNECTED = 240;
        public const int ERROR_WAIT_NO_CHILDREN = 128;
        public const int ERROR_WINDOW_NOT_COMBOBOX = 1423;
        public const int ERROR_WINDOW_NOT_DIALOG = 1420;
        public const int ERROR_WINDOW_OF_OTHER_THREAD = 1408;
        public const int ERROR_WINS_INTERNAL = 4000;
        public const int ERROR_WRITE_FAULT = 29;
        public const int ERROR_WRITE_PROTECT = 19;
        public const int ERROR_WRONG_DISK = 34;
        public const int ERROR_WRONG_PASSWORD = 1323;
        public const int E_ABORT = unchecked((int)0x80004004);
        public const int E_ACCESSDENIED = unchecked((int)0x80070005);
        public const int E_FAIL = unchecked((int)0x80004005);
        public const int E_HANDLE = unchecked((int)0x80070006);
        public const int E_INVALIDARG = unchecked((int)0x80070057);
        public const int E_NOINTERFACE = unchecked((int)0x80004002);
        public const int E_NOTIMPL = unchecked((int)0x80004001);
        public const int E_OUTOFMEMORY = unchecked((int)0x8007000E);
        public const int E_POINTER = unchecked((int)0x80004003);
        public const int E_UNEXPECTED = unchecked((int)0x8000FFFF);
        public const int FACILITY_NT_BIT = 0x10000000;
        public const int INPLACE_E_FIRST = unchecked((int)0x800401A0);
        public const int INPLACE_E_LAST = unchecked((int)0x800401AF);
        public const int INPLACE_E_NOTOOLSPACE = unchecked((int)0x800401A1);
        public const int INPLACE_E_NOTUNDOABLE = unchecked((int)0x800401A0);
        public const int INPLACE_S_FIRST = 0x401A0;
        public const int INPLACE_S_LAST = 0x401AF;
        public const int INPLACE_S_TRUNCATED = 0x401A0;
        public const int MARSHAL_E_FIRST = unchecked((int)0x80040120);
        public const int MARSHAL_E_LAST = unchecked((int)0x8004012F);
        public const int MARSHAL_S_FIRST = 0x40120;
        public const int MARSHAL_S_LAST = 0x4012F;
        public const int MEM_E_INVALID_LINK = unchecked((int)0x80080010);
        public const int MEM_E_INVALID_ROOT = unchecked((int)0x80080009);
        public const int MEM_E_INVALID_SIZE = unchecked((int)0x80080011);
        public const int MK_E_CANTOPENFILE = unchecked((int)0x800401EA);
        public const int MK_E_CONNECTMANUALLY = unchecked((int)0x800401E0);
        public const int MK_E_ENUMERATION_FAILED = unchecked((int)0x800401EF);
        public const int MK_E_EXCEEDEDDEADLINE = unchecked((int)0x800401E1);
        public const int MK_E_FIRST = unchecked((int)0x800401E0);
        public const int MK_E_INTERMEDIATEINTERFACENOTSUPPORTED = unchecked((int)0x800401E7);
        public const int MK_E_INVALIDEXTENSION = unchecked((int)0x800401E6);
        public const int MK_E_LAST = unchecked((int)0x800401EF);
        public const int MK_E_MUSTBOTHERUSER = unchecked((int)0x800401EB);
        public const int MK_E_NEEDGENERIC = unchecked((int)0x800401E2);
        public const int MK_E_NOINVERSE = unchecked((int)0x800401EC);
        public const int MK_E_NOOBJECT = unchecked((int)0x800401E5);
        public const int MK_E_NOPREFIX = unchecked((int)0x800401EE);
        public const int MK_E_NOSTORAGE = unchecked((int)0x800401ED);
        public const int MK_E_NOTBINDABLE = unchecked((int)0x800401E8);
        public const int MK_E_NOTBOUND = unchecked((int)0x800401E9);
        public const int MK_E_NO_NORMALIZED = unchecked((int)0x80080007);
        public const int MK_E_SYNTAX = unchecked((int)0x800401E4);
        public const int MK_E_UNAVAILABLE = unchecked((int)0x800401E3);
        public const int MK_S_FIRST = 0x401E0;
        public const int MK_S_HIM = 0x401E5;
        public const int MK_S_LAST = 0x401EF;
        public const int MK_S_ME = 0x401E4;
        public const int MK_S_MONIKERALREADYREGISTERED = 0x401E7;
        public const int MK_S_REDUCED_TO_SELF = 0x401E2;
        public const int MK_S_US = 0x401E6;
        public const int NOERROR = 0;
        public const int NO_ERROR = 0;
        public const int OLEOBJ_E_FIRST = unchecked((int)0x80040180);
        public const int OLEOBJ_E_INVALIDVERB = unchecked((int)0x80040181);
        public const int OLEOBJ_E_LAST = unchecked((int)0x8004018F);
        public const int OLEOBJ_E_NOVERBS = unchecked((int)0x80040180);
        public const int OLEOBJ_S_CANNOT_DOVERB_NOW = 0x40181;
        public const int OLEOBJ_S_FIRST = 0x40180;
        public const int OLEOBJ_S_INVALIDHWND = 0x40182;
        public const int OLEOBJ_S_INVALIDVERB = 0x40180;
        public const int OLEOBJ_S_LAST = 0x4018F;
        public const int OLE_E_ADVF = unchecked((int)0x80040001);
        public const int OLE_E_ADVISENOTSUPPORTED = unchecked((int)0x80040003);
        public const int OLE_E_BLANK = unchecked((int)0x80040007);
        public const int OLE_E_CANTCONVERT = unchecked((int)0x80040011);
        public const int OLE_E_CANT_BINDTOSOURCE = unchecked((int)0x8004000A);
        public const int OLE_E_CANT_GETMONIKER = unchecked((int)0x80040009);
        public const int OLE_E_CLASSDIFF = unchecked((int)0x80040008);
        public const int OLE_E_ENUM_NOMORE = unchecked((int)0x80040002);
        public const int OLE_E_FIRST = unchecked((int)0x80040000);
        public const int OLE_E_INVALIDHWND = unchecked((int)0x8004000F);
        public const int OLE_E_INVALIDRECT = unchecked((int)0x8004000D);
        public const int OLE_E_LAST = unchecked((int)0x800400FF);
        public const int OLE_E_NOCACHE = unchecked((int)0x80040006);
        public const int OLE_E_NOCONNECTION = unchecked((int)0x80040004);
        public const int OLE_E_NOSTORAGE = unchecked((int)0x80040012);
        public const int OLE_E_NOTRUNNING = unchecked((int)0x80040005);
        public const int OLE_E_NOT_INPLACEACTIVE = unchecked((int)0x80040010);
        public const int OLE_E_OLEVERB = unchecked((int)0x80040000);
        public const int OLE_E_PROMPTSAVECANCELLED = unchecked((int)0x8004000C);
        public const int OLE_E_STATIC = unchecked((int)0x8004000B);
        public const int OLE_E_WRONGCOMPOBJ = unchecked((int)0x8004000E);
        public const int OLE_S_FIRST = 0x40000;
        public const int OLE_S_LAST = 0x400FF;
        public const int OLE_S_MAC_CLIPFORMAT = 0x40002;
        public const int OLE_S_STATIC = 0x40001;
        public const int OLE_S_USEREG = 0x40000;
        public const int REGDB_E_CLASSNOTREG = unchecked((int)0x80040154);
        public const int REGDB_E_FIRST = unchecked((int)0x80040150);
        public const int REGDB_E_IIDNOTREG = unchecked((int)0x80040155);
        public const int REGDB_E_INVALIDVALUE = unchecked((int)0x80040153);
        public const int REGDB_E_KEYMISSING = unchecked((int)0x80040152);
        public const int REGDB_E_LAST = unchecked((int)0x8004015F);
        public const int REGDB_E_READREGDB = unchecked((int)0x80040150);
        public const int REGDB_E_WRITEREGDB = unchecked((int)0x80040151);
        public const int REGDB_S_FIRST = 0x40150;
        public const int REGDB_S_LAST = 0x4015F;
        public const int RPC_E_ATTEMPTED_MULTITHREAD = unchecked((int)0x80010102);
        public const int RPC_E_CALL_CANCELED = unchecked((int)0x80010002);
        public const int RPC_E_CALL_REJECTED = unchecked((int)0x80010001);
        public const int RPC_E_CANTCALLOUT_AGAIN = unchecked((int)0x80010011);
        public const int RPC_E_CANTCALLOUT_INASYNCCALL = unchecked((int)0x80010004);
        public const int RPC_E_CANTCALLOUT_INEXTERNALCALL = unchecked((int)0x80010005);
        public const int RPC_E_CANTCALLOUT_ININPUTSYNCCALL = unchecked((int)0x8001010D);
        public const int RPC_E_CANTPOST_INSENDCALL = unchecked((int)0x80010003);
        public const int RPC_E_CANTTRANSMIT_CALL = unchecked((int)0x8001000A);
        public const int RPC_E_CHANGED_MODE = unchecked((int)0x80010106);
        public const int RPC_E_CLIENT_CANTMARSHAL_DATA = unchecked((int)0x8001000B);
        public const int RPC_E_CLIENT_CANTUNMARSHAL_DATA = unchecked((int)0x8001000C);
        public const int RPC_E_CLIENT_DIED = unchecked((int)0x80010008);
        public const int RPC_E_CONNECTION_TERMINATED = unchecked((int)0x80010006);
        public const int RPC_E_DISCONNECTED = unchecked((int)0x80010108);
        public const int RPC_E_FAULT = unchecked((int)0x80010104);
        public const int RPC_E_INVALIDMETHOD = unchecked((int)0x80010107);
        public const int RPC_E_INVALID_CALLDATA = unchecked((int)0x8001010C);
        public const int RPC_E_INVALID_DATA = unchecked((int)0x8001000F);
        public const int RPC_E_INVALID_DATAPACKET = unchecked((int)0x80010009);
        public const int RPC_E_INVALID_PARAMETER = unchecked((int)0x80010010);
        public const int RPC_E_NOT_REGISTERED = unchecked((int)0x80010103);
        public const int RPC_E_OUT_OF_RESOURCES = unchecked((int)0x80010101);
        public const int RPC_E_RETRY = unchecked((int)0x80010109);
        public const int RPC_E_SERVERCALL_REJECTED = unchecked((int)0x8001010B);
        public const int RPC_E_SERVERCALL_RETRYLATER = unchecked((int)0x8001010A);
        public const int RPC_E_SERVERFAULT = unchecked((int)0x80010105);
        public const int RPC_E_SERVER_CANTMARSHAL_DATA = unchecked((int)0x8001000D);
        public const int RPC_E_SERVER_CANTUNMARSHAL_DATA = unchecked((int)0x8001000E);
        public const int RPC_E_SERVER_DIED = unchecked((int)0x80010007);
        public const int RPC_E_SERVER_DIED_DNE = unchecked((int)0x80010012);
        public const int RPC_E_SYS_CALL_FAILED = unchecked((int)0x80010100);
        public const int RPC_E_THREAD_NOT_INIT = unchecked((int)0x8001010F);
        public const int RPC_E_UNEXPECTED = unchecked((int)0x8001FFFF);
        public const int RPC_E_WRONG_THREAD = unchecked((int)0x8001010E);
        public const int RPC_S_ADDRESS_ERROR = 1768;
        public const int RPC_S_ALREADY_LISTENING = 1713;
        public const int RPC_S_ALREADY_REGISTERED = 1711;
        public const int RPC_S_BINDING_HAS_NO_AUTH = 1746;
        public const int RPC_S_CALL_FAILED = 1726;
        public const int RPC_S_CALL_FAILED_DNE = 1727;
        public const int RPC_S_CALL_IN_PROGRESS = 1791;
        public const int RPC_S_CANNOT_SUPPORT = 1764;
        public const int RPC_S_CANT_CREATE_ENDPOINT = 1720;
        public const int RPC_S_DUPLICATE_ENDPOINT = 1740;
        public const int RPC_S_ENTRY_ALREADY_EXISTS = 1760;
        public const int RPC_S_ENTRY_NOT_FOUND = 1761;
        public const int RPC_S_FP_DIV_ZERO = 1769;
        public const int RPC_S_FP_OVERFLOW = 1771;
        public const int RPC_S_FP_UNDERFLOW = 1770;
        public const int RPC_S_GROUP_MEMBER_NOT_FOUND = 1898;
        public const int RPC_S_INCOMPLETE_NAME = 1755;
        public const int RPC_S_INTERFACE_NOT_FOUND = 1759;
        public const int RPC_S_INTERNAL_ERROR = 1766;
        public const int RPC_S_INVALID_AUTH_IDENTITY = 1749;
        public const int RPC_S_INVALID_BINDING = 1702;
        public const int RPC_S_INVALID_BOUND = 1734;
        public const int RPC_S_INVALID_ENDPOINT_FORMAT = 1706;
        public const int RPC_S_INVALID_NAF_ID = 1763;
        public const int RPC_S_INVALID_NAME_SYNTAX = 1736;
        public const int RPC_S_INVALID_NETWORK_OPTIONS = 1724;
        public const int RPC_S_INVALID_NET_ADDR = 1707;
        public const int RPC_S_INVALID_OBJECT = 1900;
        public const int RPC_S_INVALID_RPC_PROTSEQ = 1704;
        public const int RPC_S_INVALID_STRING_BINDING = 1700;
        public const int RPC_S_INVALID_STRING_UUID = 1705;
        public const int RPC_S_INVALID_TAG = 1733;
        public const int RPC_S_INVALID_TIMEOUT = 1709;
        public const int RPC_S_INVALID_VERS_OPTION = 1756;
        public const int RPC_S_MAX_CALLS_TOO_SMALL = 1742;
        public const int RPC_S_NAME_SERVICE_UNAVAILABLE = 1762;
        public const int RPC_S_NOTHING_TO_EXPORT = 1754;
        public const int RPC_S_NOT_ALL_OBJS_UNEXPORTED = 1758;
        public const int RPC_S_NOT_LISTENING = 1715;
        public const int RPC_S_NO_BINDINGS = 1718;
        public const int RPC_S_NO_CALL_ACTIVE = 1725;
        public const int RPC_S_NO_CONTEXT_AVAILABLE = 1765;
        public const int RPC_S_NO_ENDPOINT_FOUND = 1708;
        public const int RPC_S_NO_ENTRY_NAME = 1735;
        public const int RPC_S_NO_MORE_BINDINGS = 1806;
        public const int RPC_S_NO_MORE_MEMBERS = 1757;
        public const int RPC_S_NO_PROTSEQS = 1719;
        public const int RPC_S_NO_PROTSEQS_REGISTERED = 1714;
        public const int RPC_S_OBJECT_NOT_FOUND = 1710;
        public const int RPC_S_OUT_OF_RESOURCES = 1721;
        public const int RPC_S_PROCNUM_OUT_OF_RANGE = 1745;
        public const int RPC_S_PROTOCOL_ERROR = 1728;
        public const int RPC_S_PROTSEQ_NOT_FOUND = 1744;
        public const int RPC_S_PROTSEQ_NOT_SUPPORTED = 1703;
        public const int RPC_S_SERVER_TOO_BUSY = 1723;
        public const int RPC_S_SERVER_UNAVAILABLE = 1722;
        public const int RPC_S_STRING_TOO_LONG = 1743;
        public const int RPC_S_TYPE_ALREADY_REGISTERED = 1712;
        public const int RPC_S_UNKNOWN_AUTHN_LEVEL = 1748;
        public const int RPC_S_UNKNOWN_AUTHN_SERVICE = 1747;
        public const int RPC_S_UNKNOWN_AUTHN_TYPE = 1741;
        public const int RPC_S_UNKNOWN_AUTHZ_SERVICE = 1750;
        public const int RPC_S_UNKNOWN_IF = 1717;
        public const int RPC_S_UNKNOWN_MGR_TYPE = 1716;
        public const int RPC_S_UNSUPPORTED_NAME_SYNTAX = 1737;
        public const int RPC_S_UNSUPPORTED_TRANS_SYN = 1730;
        public const int RPC_S_UNSUPPORTED_TYPE = 1732;
        public const int RPC_S_UUID_NO_ADDRESS = 1739;
        public const int RPC_S_WRONG_KIND_OF_BINDING = 1701;
        public const int RPC_S_ZERO_DIVIDE = 1767;
        public const int RPC_X_BAD_STUB_DATA = 1783;
        public const int RPC_X_BYTE_COUNT_TOO_SMALL = 1782;
        public const int RPC_X_ENUM_VALUE_OUT_OF_RANGE = 1781;
        public const int RPC_X_NO_MORE_ENTRIES = 1772;
        public const int RPC_X_NULL_REF_POINTER = 1780;
        public const int RPC_X_SS_CANNOT_GET_CALL_HANDLE = 1779;
        public const int RPC_X_SS_CHAR_TRANS_OPEN_FAIL = 1773;
        public const int RPC_X_SS_CHAR_TRANS_SHORT_FILE = 1774;
        public const int RPC_X_SS_CONTEXT_DAMAGED = 1777;
        public const int RPC_X_SS_HANDLES_MISMATCH = 1778;
        public const int RPC_X_SS_IN_NULL_CONTEXT = 1775;
        public const int SEVERITY_ERROR = 1;
        public const int SEVERITY_SUCCESS = 0;
        public const int STG_E_ABNORMALAPIEXIT = unchecked((int)0x800300FA);
        public const int STG_E_ACCESSDENIED = unchecked((int)0x80030005);
        public const int STG_E_CANTSAVE = unchecked((int)0x80030103);
        public const int STG_E_DISKISWRITEPROTECTED = unchecked((int)0x80030013);
        public const int STG_E_EXTANTMARSHALLINGS = unchecked((int)0x80030108);
        public const int STG_E_FILEALREADYEXISTS = unchecked((int)0x80030050);
        public const int STG_E_FILENOTFOUND = unchecked((int)0x80030002);
        public const int STG_E_INSUFFICIENTMEMORY = unchecked((int)0x80030008);
        public const int STG_E_INUSE = unchecked((int)0x80030100);
        public const int STG_E_INVALIDFLAG = unchecked((int)0x800300FF);
        public const int STG_E_INVALIDFUNCTION = unchecked((int)0x80030001);
        public const int STG_E_INVALIDHANDLE = unchecked((int)0x80030006);
        public const int STG_E_INVALIDHEADER = unchecked((int)0x800300FB);
        public const int STG_E_INVALIDNAME = unchecked((int)0x800300FC);
        public const int STG_E_INVALIDPARAMETER = unchecked((int)0x80030057);
        public const int STG_E_INVALIDPOINTER = unchecked((int)0x80030009);
        public const int STG_E_LOCKVIOLATION = unchecked((int)0x80030021);
        public const int STG_E_MEDIUMFULL = unchecked((int)0x80030070);
        public const int STG_E_NOMOREFILES = unchecked((int)0x80030012);
        public const int STG_E_NOTCURRENT = unchecked((int)0x80030101);
        public const int STG_E_NOTFILEBASEDSTORAGE = unchecked((int)0x80030107);
        public const int STG_E_OLDDLL = unchecked((int)0x80030105);
        public const int STG_E_OLDFORMAT = unchecked((int)0x80030104);
        public const int STG_E_PATHNOTFOUND = unchecked((int)0x80030003);
        public const int STG_E_READFAULT = unchecked((int)0x8003001E);
        public const int STG_E_REVERTED = unchecked((int)0x80030102);
        public const int STG_E_SEEKERROR = unchecked((int)0x80030019);
        public const int STG_E_SHAREREQUIRED = unchecked((int)0x80030106);
        public const int STG_E_SHAREVIOLATION = unchecked((int)0x80030020);
        public const int STG_E_TOOMANYOPENFILES = unchecked((int)0x80030004);
        public const int STG_E_UNIMPLEMENTEDFUNCTION = unchecked((int)0x800300FE);
        public const int STG_E_UNKNOWN = unchecked((int)0x800300FD);
        public const int STG_E_WRITEFAULT = unchecked((int)0x8003001D);
        public const int STG_S_CONVERTED = unchecked((int)0x30200);
        public const int S_FALSE = 0x1;
        public const int S_OK = 0x0;
        public const int TYPE_E_AMBIGUOUSNAME = unchecked((int)0x8002802C);
        public const int TYPE_E_BADMODULEKIND = unchecked((int)0x800288BD);
        public const int TYPE_E_BUFFERTOOSMALL = unchecked((int)0x80028016);
        public const int TYPE_E_CANTCREATETMPFILE = unchecked((int)0x80028CA3);
        public const int TYPE_E_CANTLOADLIBRARY = unchecked((int)0x80029C4A);
        public const int TYPE_E_CIRCULARTYPE = unchecked((int)0x80029C84);
        public const int TYPE_E_DLLFUNCTIONNOTFOUND = unchecked((int)0x8002802F);
        public const int TYPE_E_DUPLICATEID = unchecked((int)0x800288C6);
        public const int TYPE_E_ELEMENTNOTFOUND = unchecked((int)0x8002802B);
        public const int TYPE_E_INCONSISTENTPROPFUNCS = unchecked((int)0x80029C83);
        public const int TYPE_E_INVALIDID = unchecked((int)0x800288CF);
        public const int TYPE_E_INVALIDSTATE = unchecked((int)0x80028029);
        public const int TYPE_E_INVDATAREAD = unchecked((int)0x80028018);
        public const int TYPE_E_IOERROR = unchecked((int)0x80028CA2);
        public const int TYPE_E_LIBNOTREGISTERED = unchecked((int)0x8002801D);
        public const int TYPE_E_NAMECONFLICT = unchecked((int)0x8002802D);
        public const int TYPE_E_OUTOFBOUNDS = unchecked((int)0x80028CA1);
        public const int TYPE_E_QUALIFIEDNAMEDISALLOWED = unchecked((int)0x80028028);
        public const int TYPE_E_REGISTRYACCESS = unchecked((int)0x8002801C);
        public const int TYPE_E_SIZETOOBIG = unchecked((int)0x800288C5);
        public const int TYPE_E_TYPEMISMATCH = unchecked((int)0x80028CA0);
        public const int TYPE_E_UNDEFINEDTYPE = unchecked((int)0x80028027);
        public const int TYPE_E_UNKNOWNLCID = unchecked((int)0x8002802E);
        public const int TYPE_E_UNSUPFORMAT = unchecked((int)0x80028019);
        public const int TYPE_E_WRONGTYPEKIND = unchecked((int)0x8002802A);
        public const int VIEW_E_DRAW = unchecked((int)0x80040140);
        public const int VIEW_E_FIRST = unchecked((int)0x80040140);
        public const int VIEW_E_LAST = unchecked((int)0x8004014F);
        public const int VIEW_S_ALREADY_FROZEN = 0x40140;
        public const int VIEW_S_FIRST = 0x40140;
        public const int VIEW_S_LAST = 0x4014F;

        public const int BM_CLICK = 0xF5;
        public const int BM_GETIMAGE = 0xF6;
        public const int BM_SETIMAGE = 0xF7;
        public const int CB_GETCOMBOBOXINFO = 0x164;
        public const int CB_GETDROPPEDWIDTH = 0x15f;
        public const int CB_GETHORIZONTALEXTENT = 0x15d;
        public const int CB_GETTOPINDEX = 0x15b;
        public const int CB_INITSTORAGE = 0x161;
        public const int CB_MAX_CAB_PATH = 256;
        public const int CB_MAX_CABINET_NAME = 256;
        public const int CB_MAX_CHUNK = 32768;
        public const int CB_MAX_DISK = 0x7FFFFFFF;
        public const int CB_MAX_DISK_NAME = 256;
        public const int CB_MAX_FILENAME = 256;
        public const int CB_MULTIPLEADDSTRING = 0x163;
        public const int CB_OID_1 = 9;
        public const int CB_OID_2 = 10;
        public const int CB_OID_3 = 11;
        public const int CB_OID_4 = 12;
        public const int CB_OID_MAC_BINARY = CB_OID_1;
        public const int CB_OID_MIMETAG = CB_OID_1;
        public const int CB_OID_OLE = CB_OID_1;
        public const int CB_OID_OLE1 = CB_OID_2;
        public const int CB_OID_OLE1_STORAGE = CB_OID_3;
        public const int CB_OID_OLE2 = CB_OID_2;
        public const int CB_OID_OLE2_STORAGE = CB_OID_3;
        public const int CB_OID_TNEF = CB_OID_1;
        public const int CB_SETDROPPEDWIDTH = 0x160;
        public const int CB_SETHORIZONTALEXTENT = 0x15e;
        public const int CB_SETTOPINDEX = 0x15c;
        public const int CBEM_DELETEITEM = CB_DELETESTRING;
        public const int CBEM_GETCOMBOCONTROL = (WM_USER + 6);
        public const int CBEM_GETEDITCONTROL = (WM_USER + 7);
        public const int CBEM_GETEXSTYLE = (WM_USER + 9);
        public const int CBEM_GETEXTENDEDSTYLE = (WM_USER + 9);
        public const int CBEM_GETIMAGELIST = (WM_USER + 3);
        public const int CBEM_GETITEMA = (WM_USER + 4);
        public const int CBEM_GETITEMW = (WM_USER + 13);
        public const int CBEM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
        public const int CBEM_HASEDITCHANGED = (WM_USER + 10);
        public const int CBEM_INSERTITEMA = (WM_USER + 1);
        public const int CBEM_INSERTITEMW = (WM_USER + 11);
        public const int CBEM_SETEXSTYLE = (WM_USER + 8);
        public const int CBEM_SETEXTENDEDSTYLE = (WM_USER + 14);
        public const int CBEM_SETIMAGELIST = (WM_USER + 2);
        public const int CBEM_SETITEMA = (WM_USER + 5);
        public const int CBEM_SETITEMW = (WM_USER + 12);
        public const int CBEM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
        public const int CBEM_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
        public const int CCM_FIRST = 0x2000;
        public const int CCM_GETCOLORSCHEME = (CCM_FIRST + 3);
        public const int CCM_GETDROPTARGET = (CCM_FIRST + 4);
        public const int CCM_GETUNICODEFORMAT = (CCM_FIRST + 6);
        public const int CCM_GETVERSION = (CCM_FIRST + 0x8);
        public const int CCM_LAST = (CCM_FIRST + 0x200);
        public const int CCM_SETBKCOLOR = (CCM_FIRST + 1);
        public const int CCM_SETCOLORSCHEME = (CCM_FIRST + 2);
        public const int CCM_SETNOTIFYWINDOW = (CCM_FIRST + 0x9);
        public const int CCM_SETUNICODEFORMAT = (CCM_FIRST + 5);
        public const int CCM_SETVERSION = (CCM_FIRST + 0x7);
        public const int CCM_SETWINDOWTHEME = (CCM_FIRST + 0xB);
        public const int CDM_FIRST = (WM_USER + 100);
        public const int CDM_GETFILEPATH = (CDM_FIRST + 0x1);
        public const int CDM_GETFOLDERIDLIST = (CDM_FIRST + 0x3);
        public const int CDM_GETFOLDERPATH = (CDM_FIRST + 0x2);
        public const int CDM_GETSPEC = (CDM_FIRST + 0x0);
        public const int CDM_HIDECONTROL = (CDM_FIRST + 0x5);
        public const int CDM_LAST = (WM_USER + 200);
        public const int CDM_SETCONTROLTEXT = (CDM_FIRST + 0x4);
        public const int CDM_SETDEFEXT = (CDM_FIRST + 0x6);
        public const int CWM_GETISHELLBROWSER = (WM_USER + 7);
        public const int CWM_GETPATH = (WM_USER + 12);
        public const int CWM_SELECTITEM = (WM_USER + 5);
        public const int CWM_SELECTITEMSTR = (WM_USER + 6);
        public const int CWM_SETPATH = (WM_USER + 2);
        public const int CWM_STATECHANGE = (WM_USER + 10);
        public const int CWM_TESTPATH = (WM_USER + 9);
        public const int DDM_BEGIN = WM_USER + 3;
        public const int DDM_CLOSE = WM_USER + 2;
        public const int DDM_DRAW = WM_USER + 1;
        public const int DDM_END = WM_USER + 4;
        public const int DDM_SETFMT = WM_USER + 0;
        public const int DM_BITSPERPEL = 0x40000;
        public const int DM_DISPLAYFLAGS = 0x200000;
        public const int DM_DISPLAYFREQUENCY = 0x400000;
        public const int DM_LOGPIXELS = 0x20000;
        public const int DM_NUP = 0x40;
        public const int DM_PANNINGHEIGHT = 0x10000000;
        public const int DM_PANNINGWIDTH = 0x8000000;
        public const int DM_PELSHEIGHT = 0x100000;
        public const int DM_PELSWIDTH = 0x80000;
        public const int DM_POSITION = 0x20;
        public const int DM_REPOSITION = (WM_USER + 2);
        public const int DTM_FIRST = 0x1000;
        public const int DTM_GETMCCOLOR = (DTM_FIRST + 7);
        public const int DTM_GETMCFONT = (DTM_FIRST + 10);
        public const int DTM_GETMONTHCAL = (DTM_FIRST + 8);
        public const int DTM_GETRANGE = (DTM_FIRST + 3);
        public const int DTM_GETSYSTEMTIME = (DTM_FIRST + 1);
        public const int DTM_SETFORMATA = (DTM_FIRST + 5);
        public const int DTM_SETFORMATW = (DTM_FIRST + 50);
        public const int DTM_SETMCCOLOR = (DTM_FIRST + 6);
        public const int DTM_SETMCFONT = (DTM_FIRST + 9);
        public const int DTM_SETRANGE = (DTM_FIRST + 4);
        public const int DTM_SETSYSTEMTIME = (DTM_FIRST + 2);
        public const int DVM_CONFIGURE_END = 0x1FFF;
        public const int DVM_CONFIGURE_START = 0x1000;
        public const int DVM_DST_RECT = (DVM_CONFIGURE_START + 5);
        public const int DVM_FORMAT = (DVM_CONFIGURE_START + 2);
        public const int DVM_PALETTE = (DVM_CONFIGURE_START + 1);
        public const int DVM_PALETTERGB555 = (DVM_CONFIGURE_START + 3);
        public const int DVM_SRC_RECT = (DVM_CONFIGURE_START + 4);
        public const int DVM_USER = 0x4000;
        public const int EM_AUTOURLDETECT = (WM_USER + 91);
        public const int EM_CONVPOSITION = (WM_USER + 108);
        public const int EM_FINDTEXTEXW = (WM_USER + 124);
        public const int EM_FINDTEXTW = (WM_USER + 123);
        public const int EM_GETAUTOURLDETECT = (WM_USER + 92);
        public const int EM_GETBIDIOPTIONS = (WM_USER + 201);
        public const int EM_GETEDITSTYLE = (WM_USER + 205);
        public const int EM_GETHANDLE = 0xBD;
        public const int EM_GETIMECOLOR = (WM_USER + 105);
        public const int EM_GETIMECOMPMODE = (WM_USER + 122);
        public const int EM_GETIMEMODEBIAS = (WM_USER + 127);
        public const int EM_GETIMEOPTIONS = (WM_USER + 107);
        public const int EM_GETIMESTATUS = 0xD9;
        public const int EM_GETLANGOPTIONS = (WM_USER + 121);
        public const int EM_GETMARGINS = 0xD4;
        public const int EM_GETPUNCTUATION = (WM_USER + 101);
        public const int EM_GETSCROLLPOS = (WM_USER + 221);
        public const int EM_GETTEXTEX = (WM_USER + 94);
        public const int EM_GETTEXTLENGTHEX = (WM_USER + 95);
        public const int EM_GETTYPOGRAPHYOPTIONS = (WM_USER + 203);
        public const int EM_GETWORDBREAKPROCEX = (WM_USER + 80);
        public const int EM_GETWORDWRAPMODE = (WM_USER + 103);
        public const int EM_GETZOOM = (WM_USER + 224);
        public const int EM_OUTLINE = (WM_USER + 220);
        public const int EM_RECONVERSION = (WM_USER + 125);
        public const int EM_SETBIDIOPTIONS = (WM_USER + 200);
        public const int EM_SETEDITSTYLE = (WM_USER + 204);
        public const int EM_SETFONTSIZE = (WM_USER + 223);
        public const int EM_SETHANDLE = 0xBC;
        public const int EM_SETIMECOLOR = (WM_USER + 104);
        public const int EM_SETIMEMODEBIAS = (WM_USER + 126);
        public const int EM_SETIMEOPTIONS = (WM_USER + 106);
        public const int EM_SETIMESTATUS = 0xD8;
        public const int EM_SETLANGOPTIONS = (WM_USER + 120);
        public const int EM_SETLIMITTEXT = EM_LIMITTEXT;
        public const int EM_SETMARGINS = 0xD3;
        public const int EM_SETPALETTE = (WM_USER + 93);
        public const int EM_SETPUNCTUATION = (WM_USER + 100);
        public const int EM_SETSCROLLPOS = (WM_USER + 222);
        public const int EM_SETTEXTEX = (WM_USER + 97);
        public const int EM_SETTYPOGRAPHYOPTIONS = (WM_USER + 202);
        public const int EM_SETWORDBREAKPROCEX = (WM_USER + 81);
        public const int EM_SETWORDWRAPMODE = (WM_USER + 102);
        public const int EM_SETZOOM = (WM_USER + 225);
        public const int EM_SHOWSCROLLBAR = (WM_USER + 96);
        public const int ENM_CHANGE = 0x1;
        public const int ENM_CORRECTTEXT = 0x400000;
        public const int ENM_DRAGDROPDONE = 0x10;
        public const int ENM_DROPFILES = 0x100000;
        public const int ENM_IMECHANGE = 0x800000;
        public const int ENM_KEYEVENTS = 0x10000;
        public const int ENM_LANGCHANGE = 0x1000000;
        public const int ENM_LINK = 0x4000000;
        public const int ENM_MOUSEEVENTS = 0x20000;
        public const int ENM_NONE = 0x0;
        public const int ENM_OBJECTPOSITIONS = 0x2000000;
        public const int ENM_PARAGRAPHEXPANDED = 0x20;
        public const int ENM_PROTECTED = 0x200000;
        public const int ENM_REQUESTRESIZE = 0x40000;
        public const int ENM_SCROLL = 0x4;
        public const int ENM_SCROLLEVENTS = 0x8;
        public const int ENM_SELCHANGE = 0x80000;
        public const int ENM_UPDATE = 0x2;
        public const int GCLP_MENUNAME = -8;
        public const int GCLP_HBRBACKGROUND = -10;
        public const int GCLP_HCURSOR = -12;
        public const int GCLP_HICON = -14;
        public const int GCLP_HMODULE = -16;
        public const int GCLP_WNDPROC = -24;
        public const int GCLP_HICONSM = -34;
        public const int HDM_CLEARFILTER = HDM_FIRST + 24;
        public const int HDM_CREATEDRAGIMAGE = HDM_FIRST + 16;
        public const int HDM_DELETEITEM = HDM_FIRST + 2;
        public const int HDM_EDITFILTER = HDM_FIRST + 23;
        public const int HDM_GETBITMAPMARGIN = (HDM_FIRST + 21);
        public const int HDM_GETITEMA = (HDM_FIRST + 3);
        public const int HDM_GETITEMCOUNT = (HDM_FIRST + 0);
        public const int HDM_GETITEMRECT = (HDM_FIRST + 7);
        public const int HDM_GETITEMW = (HDM_FIRST + 11);
        public const int HDM_GETORDERARRAY = (HDM_FIRST + 17);
        public const int HDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
        public const int HDM_HITTEST = (HDM_FIRST + 6);
        public const int HDM_INSERTITEMA = (HDM_FIRST + 1);
        public const int HDM_INSERTITEMW = (HDM_FIRST + 10);
        public const int HDM_LAYOUT = (HDM_FIRST + 5);
        public const int HDM_ORDERTOINDEX = (HDM_FIRST + 15);
        public const int HDM_SETBITMAPMARGIN = (HDM_FIRST + 20);
        public const int HDM_SETFILTERCHANGETIMEOUT = (HDM_FIRST + 22);
        public const int HDM_SETHOTDIVIDER = (HDM_FIRST + 19);
        public const int HDM_SETITEMA = (HDM_FIRST + 4);
        public const int HDM_SETITEMW = (HDM_FIRST + 12);
        public const int HDM_SETORDERARRAY = (HDM_FIRST + 18);
        public const int HDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
        public const int HKM_GETHOTKEY = (WM_USER + 2);
        public const int HKM_SETHOTKEY = (WM_USER + 1);
        public const int HKM_SETRULES = (WM_USER + 3);
        public const int IPM_CLEARADDRESS = (WM_USER + 100);
        public const int IPM_GETADDRESS = (WM_USER + 102);
        public const int IPM_ISBLANK = (WM_USER + 105);
        public const int IPM_SETADDRESS = (WM_USER + 101);
        public const int IPM_SETFOCUS = (WM_USER + 104);
        public const int IPM_SETRANGE = (WM_USER + 103);
        public const int TV_FIRST = 0x1100;
        public const int LB_INITSTORAGE = 0x1A8;
        public const int LB_ITEMFROMPOINT = 0x1A9;
        public const int LB_MULTIPLEADDSTRING = 0x1B1;
        public const int LM_BAUD_115200 = 115200;
        public const int LM_BAUD_1152K = 1152000;
        public const int LM_BAUD_1200 = 1200;
        public const int LM_BAUD_19200 = 19200;
        public const int LM_BAUD_2400 = 2400;
        public const int LM_BAUD_38400 = 38400;
        public const int LM_BAUD_4M = 4000000;
        public const int LM_BAUD_57600 = 57600;
        public const int LM_BAUD_576K = 576000;
        public const int LM_BAUD_9600 = 9600;
        public const int LM_GETIDEALHEIGHT = (WM_USER + 0x301);
        public const int LM_GETITEM = (WM_USER + 0x303);
        public const int LM_HITTEST = (WM_USER + 0x300);
        public const int LM_SETITEM = (WM_USER + 0x302);
        public const int LVM_APPROXIMATEVIEWRECT = (LVM_FIRST + 64);
        public const int LVM_ARRANGE = (LVM_FIRST + 22);
        public const int LVM_CREATEDRAGIMAGE = (LVM_FIRST + 33);
        public const int LVM_DELETEALLITEMS = (LVM_FIRST + 9);
        public const int LVM_DELETECOLUMN = (LVM_FIRST + 28);
        public const int LVM_DELETEITEM = (LVM_FIRST + 8);
        public const int LVM_EDITLABELA = (LVM_FIRST + 23);
        public const int LVM_EDITLABELW = (LVM_FIRST + 118);
        public const int LVM_ENABLEGROUPVIEW = (LVM_FIRST + 157);
        public const int LVM_ENSUREVISIBLE = (LVM_FIRST + 19);
        public const int LVM_FINDITEMA = (LVM_FIRST + 13);
        public const int LVM_FINDITEMW = (LVM_FIRST + 83);
        public const int LVM_GETBKCOLOR = (LVM_FIRST + 0);
        public const int LVM_GETBKIMAGEA = (LVM_FIRST + 69);
        public const int LVM_GETBKIMAGEW = (LVM_FIRST + 139);
        public const int LVM_GETCALLBACKMASK = (LVM_FIRST + 10);
        public const int LVM_GETCOLUMNA = (LVM_FIRST + 25);
        public const int LVM_GETCOLUMNORDERARRAY = (LVM_FIRST + 59);
        public const int LVM_GETCOLUMNW = (LVM_FIRST + 95);
        public const int LVM_GETCOLUMNWIDTH = (LVM_FIRST + 29);
        public const int LVM_GETCOUNTPERPAGE = (LVM_FIRST + 40);
        public const int LVM_GETEDITCONTROL = (LVM_FIRST + 24);
        public const int LVM_GETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 55);
        public const int LVM_GETGROUPINFO = (LVM_FIRST + 149);
        public const int LVM_GETGROUPMETRICS = (LVM_FIRST + 156);
        public const int LVM_GETHOTCURSOR = (LVM_FIRST + 63);
        public const int LVM_GETHOTITEM = (LVM_FIRST + 61);
        public const int LVM_GETHOVERTIME = (LVM_FIRST + 72);
        public const int LVM_GETIMAGELIST = (LVM_FIRST + 2);
        public const int LVM_GETINSERTMARK = (LVM_FIRST + 167);
        public const int LVM_GETINSERTMARKCOLOR = (LVM_FIRST + 171);
        public const int LVM_GETINSERTMARKRECT = (LVM_FIRST + 169);
        public const int LVM_GETISEARCHSTRINGA = (LVM_FIRST + 52);
        public const int LVM_GETISEARCHSTRINGW = (LVM_FIRST + 117);
        public const int LVM_GETITEMA = (LVM_FIRST + 5);
        public const int LVM_GETITEMCOUNT = (LVM_FIRST + 4);
        public const int LVM_GETITEMPOSITION = (LVM_FIRST + 16);
        public const int LVM_GETITEMRECT = (LVM_FIRST + 14);
        public const int LVM_GETITEMSPACING = (LVM_FIRST + 51);
        public const int LVM_GETITEMSTATE = (LVM_FIRST + 44);
        public const int LVM_GETITEMTEXTA = (LVM_FIRST + 45);
        public const int LVM_GETITEMTEXTW = (LVM_FIRST + 115);
        public const int LVM_GETITEMW = (LVM_FIRST + 75);
        public const int LVM_GETNEXTITEM = (LVM_FIRST + 12);
        public const int LVM_GETNUMBEROFWORKAREAS = (LVM_FIRST + 73);
        public const int LVM_GETORIGIN = (LVM_FIRST + 41);
        public const int LVM_GETOUTLINECOLOR = (LVM_FIRST + 176);
        public const int LVM_GETSELECTEDCOLUMN = (LVM_FIRST + 174);
        public const int LVM_GETSELECTEDCOUNT = (LVM_FIRST + 50);
        public const int LVM_GETSELECTIONMARK = (LVM_FIRST + 66);
        public const int LVM_GETSTRINGWIDTHA = (LVM_FIRST + 17);
        public const int LVM_GETSTRINGWIDTHW = (LVM_FIRST + 87);
        public const int LVM_GETSUBITEMRECT = (LVM_FIRST + 56);
        public const int LVM_GETTEXTBKCOLOR = (LVM_FIRST + 37);
        public const int LVM_GETTEXTCOLOR = (LVM_FIRST + 35);
        public const int LVM_GETTILEINFO = (LVM_FIRST + 165);
        public const int LVM_GETTILEVIEWINFO = (LVM_FIRST + 163);
        public const int LVM_GETTOOLTIPS = (LVM_FIRST + 78);
        public const int LVM_GETTOPINDEX = (LVM_FIRST + 39);
        public const int LVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
        public const int LVM_GETVIEW = (LVM_FIRST + 143);
        public const int LVM_GETVIEWRECT = (LVM_FIRST + 34);
        public const int LVM_GETWORKAREAS = (LVM_FIRST + 70);
        public const int LVM_HASGROUP = (LVM_FIRST + 161);
        public const int LVM_HITTEST = (LVM_FIRST + 18);
        public const int LVM_INSERTCOLUMNA = (LVM_FIRST + 27);
        public const int LVM_INSERTCOLUMNW = (LVM_FIRST + 97);
        public const int LVM_INSERTGROUP = (LVM_FIRST + 145);
        public const int LVM_INSERTGROUPSORTED = (LVM_FIRST + 159);
        public const int LVM_INSERTITEMA = (LVM_FIRST + 7);
        public const int LVM_INSERTITEMW = (LVM_FIRST + 77);
        public const int LVM_INSERTMARKHITTEST = (LVM_FIRST + 168);
        public const int LVM_ISGROUPVIEWENABLED = (LVM_FIRST + 175);
        public const int LVM_MOVEGROUP = (LVM_FIRST + 151);
        public const int LVM_MOVEITEMTOGROUP = (LVM_FIRST + 154);
        public const int LVM_REDRAWITEMS = (LVM_FIRST + 21);
        public const int LVM_REMOVEALLGROUPS = (LVM_FIRST + 160);
        public const int LVM_REMOVEGROUP = (LVM_FIRST + 150);
        public const int LVM_SCROLL = (LVM_FIRST + 20);
        public const int LVM_SETBKCOLOR = (LVM_FIRST + 1);
        public const int LVM_SETBKIMAGEA = (LVM_FIRST + 68);
        public const int LVM_SETBKIMAGEW = (LVM_FIRST + 138);
        public const int LVM_SETCALLBACKMASK = (LVM_FIRST + 11);
        public const int LVM_SETCOLUMNA = (LVM_FIRST + 26);
        public const int LVM_SETCOLUMNORDERARRAY = (LVM_FIRST + 58);
        public const int LVM_SETCOLUMNW = (LVM_FIRST + 96);
        public const int LVM_SETCOLUMNWIDTH = (LVM_FIRST + 30);
        public const int LVM_SETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 54);
        public const int LVM_SETGROUPINFO = (LVM_FIRST + 147);
        public const int LVM_SETGROUPMETRICS = (LVM_FIRST + 155);
        public const int LVM_SETHOTCURSOR = (LVM_FIRST + 62);
        public const int LVM_SETHOTITEM = (LVM_FIRST + 60);
        public const int LVM_SETHOVERTIME = (LVM_FIRST + 71);
        public const int LVM_SETICONSPACING = (LVM_FIRST + 53);
        public const int LVM_SETIMAGELIST = (LVM_FIRST + 3);
        public const int LVM_SETINFOTIP = (LVM_FIRST + 173);
        public const int LVM_SETINSERTMARK = (LVM_FIRST + 166);
        public const int LVM_SETINSERTMARKCOLOR = (LVM_FIRST + 170);
        public const int LVM_SETITEMA = (LVM_FIRST + 6);
        public const int LVM_SETITEMCOUNT = (LVM_FIRST + 47);
        public const int LVM_SETITEMPOSITION = (LVM_FIRST + 15);
        public const int LVM_SETITEMPOSITION32 = (LVM_FIRST + 49);
        public const int LVM_SETITEMSTATE = (LVM_FIRST + 43);
        public const int LVM_SETITEMTEXTA = (LVM_FIRST + 46);
        public const int LVM_SETITEMTEXTW = (LVM_FIRST + 116);
        public const int LVM_SETITEMW = (LVM_FIRST + 76);
        public const int LVM_SETOUTLINECOLOR = (LVM_FIRST + 177);
        public const int LVM_SETSELECTEDCOLUMN = (LVM_FIRST + 140);
        public const int LVM_SETSELECTIONMARK = (LVM_FIRST + 67);
        public const int LVM_SETTEXTBKCOLOR = (LVM_FIRST + 38);
        public const int LVM_SETTEXTCOLOR = (LVM_FIRST + 36);
        public const int LVM_SETTILEINFO = (LVM_FIRST + 164);
        public const int LVM_SETTILEVIEWINFO = (LVM_FIRST + 162);
        public const int LVM_SETTILEWIDTH = (LVM_FIRST + 141);
        public const int LVM_SETTOOLTIPS = (LVM_FIRST + 74);
        public const int LVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
        public const int LVM_SETVIEW = (LVM_FIRST + 142);
        public const int LVM_SETWORKAREAS = (LVM_FIRST + 65);
        public const int LVM_SORTGROUPS = (LVM_FIRST + 158);
        public const int LVM_SORTITEMS = (LVM_FIRST + 48);
        public const int LVM_SORTITEMSEX = (LVM_FIRST + 81);
        public const int LVM_SUBITEMHITTEST = (LVM_FIRST + 57);
        public const int LVM_UPDATE = (LVM_FIRST + 42);
        public const int NIF_STATE = 8;
        public const int NIF_INFO = 16;
        public const int NIIF_NONE = 0;
        public const int NIIF_INFO = 1;
        public const int NIIF_WARNING = 2;
        public const int NIIF_ERROR = 3;
        public const int NIIF_ICON_MASK = 15;
        public const int NM_ACCESS_CATEGORY = 0x1000C;
        public const int NM_ACTIVATION_SCHEDULE = 0x25581;
        public const int NM_ACTIVATION_STYLE = 0x10049;
        public const int NM_ADDRESS = 0x20082;
        public const int NM_ADDRESS_ENTRY_DISPLAY_TABLE = 0x24482;
        public const int NM_ADDRESS_ENTRY_DISPLAY_TABLE_MSDOS = 0x21083;
        public const int NM_ADDRESS_SYNTAX = 0x27F81;
        public const int NM_ADDRESS_TYPE = 0x25E82;
        public const int NM_ADMD = 0x26881;
        public const int NM_ADMIN_DESCRIPTION = 0x26281;
        public const int NM_ADMIN_DISPLAY_NAME = 0x24281;
        public const int NM_ADMIN_EXTENSION_DLL = 0x1005F;
        public const int NM_ALIASED_OBJECT_NAME = 0x10001;
        public const int NM_ALT_RECIPIENT = 0x1007E;
        public const int NM_ALT_RECIPIENT_BL = 0x22682;
        public const int NM_ANCESTOR_ID = 0x20582;
        public const int NM_ASSISTANT_NAME = 0x23C83;
        public const int NM_ASSOC_NT_ACCOUNT = 0x25481;
        public const int NM_ASSOC_REMOTE_DXA = 0x22B82;
        public const int NM_ASSOCIATION_LIFETIME = 0x21581;
        public const int NM_ATTRIBUTE_ID = 0x1001E;
        public const int NM_ATTRIBUTE_SYNTAX = 0x10020;
        public const int NM_AUTH_ORIG = 0x20181;
        public const int NM_AUTH_ORIG_BL = 0x22282;
        public const int NM_AUTHORITY_REVOC_LIST = 0x10026;
        public const int NM_AUTHORIZED_DOMAIN = 0x24A81;
        public const int NM_AUTHORIZED_PASSWORD = 0x24181;
        public const int NM_AUTHORIZED_USER = 0x21482;
        public const int NM_AUTOREPLY = 0x21E82;
        public const int NM_AUTOREPLY_MESSAGE = 0x21F82;
        public const int NM_AUTOREPLY_SUBJECT = 0x23A83;
        public const int NM_AUXILIARY_CLASS = 0x25F82;
        public const int NM_BRIDGEHEAD_SERVERS = 0x24F83;
        public const int NM_BUSINESS_CATEGORY = 0x1000F;
        public const int NM_BUSINESS_ROLES = 0x10069;
        public const int NM_CA_CERT = 0x10025;
        public const int NM_CAN_CREATE_PF = 0x1000B;
        public const int NM_CAN_CREATE_PF_BL = 0x25382;
        public const int NM_CAN_CREATE_PF_DL = 0x1003E;
        public const int NM_CAN_CREATE_PF_DL_BL = 0x25482;
        public const int NM_CAN_NOT_CREATE_PF = 0x1003F;
        public const int NM_CAN_NOT_CREATE_PF_BL = 0x25582;
        public const int NM_CAN_NOT_CREATE_PF_DL = 0x22C82;
        public const int NM_CAN_NOT_CREATE_PF_DL_BL = 0x25682;
        public const int NM_CAN_PRESERVE_DNS = 0x24783;
        public const int NM_CERT_REVOC_LIST = 0x10027;
        public const int NM_CHAR = (NM_FIRST - 18);
        public const int NM_CLICK = (NM_FIRST - 2);
        public const int NM_CLOCK_ALERT_OFFSET = 0x22581;
        public const int NM_CLOCK_ALERT_REPAIR = 0x22481;
        public const int NM_CLOCK_WARNING_OFFSET = 0x23181;
        public const int NM_CLOCK_WARNING_REPAIR = 0x22681;
        public const int NM_COMMENT = 0x10051;
        public const int NM_COMMON_NAME = 0x10003;
        public const int NM_COMPANY = 0x21281;
        public const int NM_COMPUTER_NAME = 0x10014;
        public const int NM_CONNECTED_DOMAINS = 0x25381;
        public const int NM_CONTAINER_INFO = 0x22882;
        public const int NM_COST = 0x20781;
        public const int NM_COUNTRY_NAME = 0x10006;
        public const int NM_CROSS_CERT_PAIR = 0x10028;
        public const int NM_CUSTOMDRAW = (NM_FIRST - 12);
        public const int NM_DBLCLK = (NM_FIRST - 3);
        public const int NM_DELIV_CONT_LENGTH = 0x20A81;
        public const int NM_DELIV_EITS = 0x20B81;
        public const int NM_DELIV_EXT_CONT_TYPES = 0x20C81;
        public const int NM_DELIVER_AND_REDIRECT = 0x23E81;
        public const int NM_DELIVERY_MECHANISM = 0x27181;
        public const int NM_DEPARTMENT = 0x20D81;
        public const int NM_DESCRIPTION = 0x1000D;
        public const int NM_DEST_INDICATOR = 0x1001B;
        public const int NM_DIAGNOSTIC_REG_KEY = 0x23D81;
        public const int NM_DISPLAY_NAME = 0x1000D;
        public const int NM_DISPLAY_NAME_OVERRIDE = 0x24082;
        public const int NM_DISPLAY_NAME_PRINTABLE = 0x26182;
        public const int NM_DL_MEM_REJECT_PERMS = 0x1002F;
        public const int NM_DL_MEM_REJECT_PERMS_BL = 0x22582;
        public const int NM_DL_MEM_SUBMIT_PERMS = 0x21081;
        public const int NM_DL_MEM_SUBMIT_PERMS_BL = 0x22382;
        public const int NM_DL_MEMBER_RULE = 0x24A82;
        public const int NM_DMD_LOCATION = 0x10024;
        public const int NM_DOMAIN_DEF_ALT_RECIP = 0x21181;
        public const int NM_DOMAIN_NAME = 0x21381;
        public const int NM_DSA_SIGNATURE = 0x1004A;
        public const int NM_DXA_ADMIN_COPY = 0x27A82;
        public const int NM_DXA_ADMIN_FORWARD = 0x27B82;
        public const int NM_DXA_ADMIN_UPDATE = 0x27D82;
        public const int NM_DXA_APPEND_REQCN = 0x22E81;
        public const int NM_DXA_CONF_CONTAINER_LIST = 0x23481;
        public const int NM_DXA_CONF_REQ_TIME = 0x1007A;
        public const int NM_DXA_CONF_SEQ = 0x23881;
        public const int NM_DXA_CONF_SEQ_USN = 0x1002D;
        public const int NM_DXA_EXCHANGE_OPTIONS = 0x26782;
        public const int NM_DXA_EXPORT_NOW = 0x27982;
        public const int NM_DXA_FLAGS = 0x1006A;
        public const int NM_DXA_IMP_SEQ = 0x10074;
        public const int NM_DXA_IMP_SEQ_TIME = 0x10075;
        public const int NM_DXA_IMP_SEQ_USN = 0x10056;
        public const int NM_DXA_IMPORT_NOW = 0x27882;
        public const int NM_DXA_IN_TEMPLATE_MAP = 0x26B82;
        public const int NM_DXA_LOCAL_ADMIN = 0x10071;
        public const int NM_DXA_LOGGING_LEVEL = 0x27E82;
        public const int NM_DXA_NATIVE_ADDRESS_TYPE = 0x24B82;
        public const int NM_DXA_OUT_TEMPLATE_MAP = 0x26C82;
        public const int NM_DXA_PASSWORD = 0x23182;
        public const int NM_DXA_PREV_EXCHANGE_OPTIONS = 0x25881;
        public const int NM_DXA_PREV_EXPORT_NATIVE_ONLY = 0x24B81;
        public const int NM_DXA_PREV_IN_EXCHANGE_SENSITIVITY = 0x1005A;
        public const int NM_DXA_PREV_REMOTE_ENTRIES = 0x20982;
        public const int NM_DXA_PREV_REPLICATION_SENSITIVITY = 0x25781;
        public const int NM_DXA_PREV_TEMPLATE_OPTIONS = 0x20B83;
        public const int NM_DXA_PREV_TYPES = 0x25981;
        public const int NM_DXA_RECIPIENT_CP = 0x20083;
        public const int NM_DXA_REMOTE_CLIENT = 0x10070;
        public const int NM_DXA_REQ_SEQ = 0x10065;
        public const int NM_DXA_REQ_SEQ_TIME = 0x10072;
        public const int NM_DXA_REQ_SEQ_USN = 0x23681;
        public const int NM_DXA_REQNAME = 0x23E83;
        public const int NM_DXA_SVR_SEQ = 0x26882;
        public const int NM_DXA_SVR_SEQ_TIME = 0x26982;
        public const int NM_DXA_SVR_SEQ_USN = 0x1007C;
        public const int NM_DXA_TASK = 0x10064;
        public const int NM_DXA_TEMPLATE_OPTIONS = 0x26682;
        public const int NM_DXA_TEMPLATE_TIMESTAMP = 0x26D82;
        public const int NM_DXA_TYPES = 0x10077;
        public const int NM_DXA_UNCONF_CONTAINER_LIST = 0x23581;
        public const int NM_ENABLED_PROTOCOLS = 0x25A83;
        public const int NM_ENCAPSULATION_METHOD = 0x24083;
        public const int NM_ENCRYPT = 0x26C81;
        public const int NM_ENCRYPT_ALG_LIST_NA = 0x20281;
        public const int NM_ENCRYPT_ALG_LIST_OTHER = 0x20F83;
        public const int NM_ENCRYPT_ALG_SELECTED_NA = 0x21183;
        public const int NM_ENCRYPT_ALG_SELECTED_OTHER = 0x20D83;
        public const int NM_EXPAND_DLS_LOCALLY = 0x24981;
        public const int NM_EXPIRATION_TIME = 0x20A83;
        public const int NM_EXPORT_CONTAINERS = 0x1006F;
        public const int NM_EXPORT_CUSTOM_RECIPIENTS = 0x23382;
        public const int NM_EXTENDED_CHARS_ALLOWED = 0x27C82;
        public const int NM_EXTENSION_ATTRIBUTE_1 = 0x22783;
        public const int NM_EXTENSION_ATTRIBUTE_10 = 0x23083;
        public const int NM_EXTENSION_ATTRIBUTE_2 = 0x22883;
        public const int NM_EXTENSION_ATTRIBUTE_3 = 0x22983;
        public const int NM_EXTENSION_ATTRIBUTE_4 = 0x22A83;
        public const int NM_EXTENSION_ATTRIBUTE_5 = 0x22B83;
        public const int NM_EXTENSION_ATTRIBUTE_6 = 0x22C83;
        public const int NM_EXTENSION_ATTRIBUTE_7 = 0x22D83;
        public const int NM_EXTENSION_ATTRIBUTE_8 = 0x22E83;
        public const int NM_EXTENSION_ATTRIBUTE_9 = 0x22F83;
        public const int NM_EXTENSION_DATA = 0x26481;
        public const int NM_EXTENSION_NAME = 0x26381;
        public const int NM_EXTENSION_NAME_INHERITED = 0x10061;
        public const int NM_FACSIMILE_PHONE_NBR = 0x10017;
        public const int NM_FILE_VERSION = 0x23281;
        public const int NM_FILTER_LOCAL_ADDRESSES = 0x1002C;
        public const int NM_FIRST = 0;
        public const int NM_FOLDER_PATHNAME = 0x25182;
        public const int NM_FOLDERS_CONTAINER = 0x26B81;
        public const int NM_FOREIGN_DSAS = 0x10044;
        public const int NM_GARBAGE_COLL_PERIOD = 0x22D82;
        public const int NM_GATEWAY_LOCAL_CRED = 0x10025;
        public const int NM_GATEWAY_LOCAL_DESIG = 0x1001D;
        public const int NM_GATEWAY_PROXY = 0x22E82;
        public const int NM_GATEWAY_ROUTING_TREE = 0x22781;
        public const int NM_GIVEN_NAME = 0x10029;
        public const int NM_GOVERNS_ID = 0x10016;
        public const int NM_GWART_LAST_MODIFIED = 0x20482;
        public const int NM_HAS_FULL_REPLICA_NCS = 0x1000F;
        public const int NM_HAS_MASTER_NCS = 0x1000E;
        public const int NM_HELP_DATA16 = 0x21283;
        public const int NM_HELP_DATA32 = 0x10009;
        public const int NM_HELP_FILE_NAME = 0x24782;
        public const int NM_HEURISTICS = 0x24483;
        public const int NM_HIDE_DL_MEMBERSHIP = 0x22982;
        public const int NM_HIDE_FROM_ADDRESS_BOOK = 0x22981;
        public const int NM_HOME_MDB = 0x27481;
        public const int NM_HOME_MDB_BL = 0x20983;
        public const int NM_HOME_MTA = 0x22B81;
        public const int NM_HOME_PUBLIC_SERVER = 0x23983;
        public const int NM_HOVER = (NM_FIRST - 13);
        public const int NM_IMPORT_CONTAINER = 0x1006E;
        public const int NM_IMPORT_SENSITIVITY = 0x27F82;
        public const int NM_IMPORTED_FROM = 0x20782;
        public const int NM_INBOUND_SITES = 0x10047;
        public const int NM_INITIALS = 0x20E83;
        public const int NM_INSTANCE_TYPE = 0x10001;
        public const int NM_INTERNAT_ISDN_NBR = 0x10019;
        public const int NM_INVOCATION_ID = 0x10073;
        public const int NM_IS_DELETED = 0x10030;
        public const int NM_IS_MEMBER_OF_DL = 0x10066;
        public const int NM_IS_SINGLE_VALUED = 0x10021;
        public const int NM_KCC_STATUS = 0x26D81;
        public const int NM_KEYDOWN = (NM_FIRST - 15);
        public const int NM_KILLFOCUS = (NM_FIRST - 8);
        public const int NM_KM_SERVER = 0x23883;
        public const int NM_KNOWLEDGE_INFO = 0x10002;
        public const int NM_LANGUAGE = 0x25383;
        public const int NM_LAST = (-99);
        public const int NM_LDAP_DISPLAY_NAME = 0x24C83;
        public const int NM_LDOWN = (NM_FIRST - 20);
        public const int NM_LINE_WRAP = 0x24183;
        public const int NM_LINK_ID = 0x10032;
        public const int NM_LOCAL_BRIDGE_HEAD = 0x23782;
        public const int NM_LOCAL_BRIDGE_HEAD_ADDRESS = 0x26181;
        public const int NM_LOCAL_INITIAL_TURN = 0x10027;
        public const int NM_LOCAL_SCOPE = 0x10011;
        public const int NM_LOCALITY_NAME = 0x10007;
        public const int NM_LOG_FILENAME = 0x24081;
        public const int NM_LOG_ROLLOVER_INTERVAL = 0x25C82;
        public const int NM_MAIL_NICKNAME = 0x23F83;
        public const int NM_MAINTAIN_AUTOREPLY_HISTORY = 0x25181;
        public const int NM_MANAGER = 0x24F82;
        public const int NM_MAPI_DISPLAY_TYPE = 0x10037;
        public const int NM_MAPI_ID = 0x10031;
        public const int NM_MAPI_RECIPIENT = 0x27382;
        public const int NM_MASTER_DSA = 0x10006;
        public const int NM_MAXIMUM_OBJECT_ID = 0x24A83;
        public const int NM_MAY_CONTAIN = 0x10019;
        public const int NM_MDB_BACKOFF_INTERVAL = 0x10048;
        public const int NM_MDB_MSG_TIME_OUT_PERIOD = 0x10040;
        public const int NM_MDB_OVER_QUOTA_LIMIT = 0x21082;
        public const int NM_MDB_STORAGE_QUOTA = 0x20A82;
        public const int NM_MDB_UNREAD_LIMIT = 0x10045;
        public const int NM_MDB_USE_DEFAULTS = 0x23582;
        public const int NM_MEMBER = 0x1001F;
        public const int NM_MESSAGE_TRACKING_ENABLED = 0x24583;
        public const int NM_MONITOR_CLOCK = 0x22381;
        public const int NM_MONITOR_SERVERS = 0x21C81;
        public const int NM_MONITOR_SERVICES = 0x22081;
        public const int NM_MONITORED_CONFIGURATIONS = 0x24681;
        public const int NM_MONITORED_SERVERS = 0x23381;
        public const int NM_MONITORED_SERVICES = 0x24781;
        public const int NM_MONITORING_ALERT_DELAY = 0x21E81;
        public const int NM_MONITORING_ALERT_UNITS = 0x10039;
        public const int NM_MONITORING_AVAILABILITY_STYLE = 0x24283;
        public const int NM_MONITORING_AVAILABILITY_WINDOW = 0x24881;
        public const int NM_MONITORING_CACHED_VIA_MAIL = 0x24481;
        public const int NM_MONITORING_CACHED_VIA_RPC = 0x24581;
        public const int NM_MONITORING_ESCALATION_PROCEDURE = 0x23C81;
        public const int NM_MONITORING_HOTSITE_POLL_INTERVAL = 0x23A81;
        public const int NM_MONITORING_HOTSITE_POLL_UNITS = 0x10057;
        public const int NM_MONITORING_MAIL_UPDATE_INTERVAL = 0x24381;
        public const int NM_MONITORING_MAIL_UPDATE_UNITS = 0x1005D;
        public const int NM_MONITORING_NORMAL_POLL_INTERVAL = 0x23B81;
        public const int NM_MONITORING_NORMAL_POLL_UNITS = 0x10058;
        public const int NM_MONITORING_RECIPIENTS = 0x21F81;
        public const int NM_MONITORING_RECIPIENTS_NDR = 0x20383;
        public const int NM_MONITORING_RPC_UPDATE_INTERVAL = 0x1005C;
        public const int NM_MONITORING_RPC_UPDATE_UNITS = 0x10059;
        public const int NM_MONITORING_WARNING_DELAY = 0x21D81;
        public const int NM_MONITORING_WARNING_UNITS = 0x10038;
        public const int NM_MTA_LOCAL_CRED = 0x20E82;
        public const int NM_MTA_LOCAL_DESIG = 0x20F82;
        public const int NM_MUST_CONTAIN = 0x10018;
        public const int NM_N_ADDRESS = 0x21A82;
        public const int NM_N_ADDRESS_TYPE = 0x25E81;
        public const int NM_NCHITTEST = NM_FIRST - 14;
        public const int NM_NETWORK_ADDRESS = 0x24B83;
        public const int NM_NNTP_CHARACTER_SET = 0x25883;
        public const int NM_NNTP_CONTENT_FORMAT = 0x25183;
        public const int NM_NT_MACHINE_NAME = 0x24683;
        public const int NM_NT_SECURITY_DESCRIPTOR = 0x21982;
        public const int NM_NUM_OF_OPEN_RETRIES = 0x21481;
        public const int NM_NUM_OF_TRANSFER_RETRIES = 0x20681;
        public const int NM_OBJ_DIST_NAME = 0x10033;
        public const int NM_OBJECT_CLASS = 0x10000;
        public const int NM_OBJECT_CLASS_CATEGORY = 0x27282;
        public const int NM_OBJECT_VERSION = 0x1004C;
        public const int NM_OFF_LINE_AB_CONTAINERS = 0x20783;
        public const int NM_OFF_LINE_AB_SCHEDULE = 0x20583;
        public const int NM_OFF_LINE_AB_SERVER = 0x20883;
        public const int NM_OFF_LINE_AB_STYLE = 0x20683;
        public const int NM_OID_TYPE = 0x24282;
        public const int NM_OM_OBJECT_CLASS = 0x25A81;
        public const int NM_OM_SYNTAX = 0x26781;
        public const int NM_OOF_REPLY_TO_ORIGINATOR = 0x23683;
        public const int NM_OPEN_RETRY_INTERVAL = 0x20F81;
        public const int NM_ORG_NAME = 0x1000A;
        public const int NM_ORG_UNIT_NAME = 0x1000B;
        public const int NM_ORIGINAL_DISPLAY_TABLE = 0x23D83;
        public const int NM_ORIGINAL_DISPLAY_TABLE_MSDOS = 0x25681;
        public const int NM_OUTBOUND_SITES = 0x10000;
        public const int NM_OUTOFMEMORY = (NM_FIRST - 1);
        public const int NM_OWNER = 0x10020;
        public const int NM_OWNER_BL = 0x10068;
        public const int NM_P_SELECTOR = 0x21D82;
        public const int NM_P_SELECTOR_INBOUND = 0x10034;
        public const int NM_PER_MSG_DIALOG_DISPLAY_TABLE = 0x24582;
        public const int NM_PER_RECIP_DIALOG_DISPLAY_TABLE = 0x24682;
        public const int NM_PERIOD_REP_SYNC_TIMES = 0x20C82;
        public const int NM_PERIOD_REPL_STAGGER = 0x20882;
        public const int NM_PF_CONTACTS = 0x1004B;
        public const int NM_PHONE_NBR = 0x10014;
        public const int NM_PHYS_DELIV_OFF_NAME = 0x10013;
        public const int NM_POP_CHARACTER_SET = 0x25483;
        public const int NM_POP_CONTENT_FORMAT = 0x25283;
        public const int NM_POSS_SUPERIORS = 0x10008;
        public const int NM_POST_OFFICE_BOX = 0x10012;
        public const int NM_POSTAL_ADDRESS = 0x10010;
        public const int NM_POSTAL_CODE = 0x10011;
        public const int NM_PREF_DELIV_METHOD = 0x1001C;
        public const int NM_PRESENTATION_ADDRESS = 0x1001D;
        public const int NM_PRMD = 0x26081;
        public const int NM_PROXY_ADDRESSES = 0x25281;
        public const int NM_PROXY_GENERATOR_DLL = 0x24882;
        public const int NM_PUBLIC_DELEGATES = 0x26E81;
        public const int NM_PUBLIC_DELEGATES_BL = 0x22782;
        public const int NM_QUOTA_NOTIFICATION_SCHEDULE = 0x10062;
        public const int NM_QUOTA_NOTIFICATION_STYLE = 0x20483;
        public const int NM_RANGE_LOWER = 0x10022;
        public const int NM_RANGE_UPPER = 0x10023;
        public const int NM_RAS_CALLBACK_NUMBER = 0x23B82;
        public const int NM_RAS_PHONE_NUMBER = 0x23A82;
        public const int NM_RAS_PHONEBOOK_ENTRY_NAME = 0x23982;
        public const int NM_RAS_REMOTE_SRVR_NAME = 0x1004E;
        public const int NM_RCLICK = (NM_FIRST - 5);
        public const int NM_RDBLCLK = (NM_FIRST - 6);
        public const int NM_RDN_ATT_ID = 0x1001A;
        public const int NM_RDOWN = (NM_FIRST - 21);
        public const int NM_REF_FULL_REPLICAS = 0x10041;
        public const int NM_REF_MASTER_DSA = 0x10042;
        public const int NM_REGISTERED_ADDRESS = 0x1001A;
        public const int NM_RELEASEDCAPTURE = (NM_FIRST - 16);
        public const int NM_REMOTE_BRIDGE_HEAD = 0x23F81;
        public const int NM_REMOTE_BRIDGE_HEAD_ADDRESS = 0x1005E;
        public const int NM_REMOTE_OUT_BH_SERVER = 0x23682;
        public const int NM_REMOTE_SITE = 0x1001B;
        public const int NM_REPLICATION_MAIL_MSG_SIZE = 0x10067;
        public const int NM_REPLICATION_SENSITIVITY = 0x25F81;
        public const int NM_REPLICATION_STAGGER = 0x25D82;
        public const int NM_REPORT_TO_ORIGINATOR = 0x24E81;
        public const int NM_REPORT_TO_OWNER = 0x24F81;
        public const int NM_REPORTS = 0x23483;
        public const int NM_REPS_FROM = 0x1005B;
        public const int NM_REPS_TO = 0x10053;
        public const int NM_REPS_TO_EXT = 0x1002B;
        public const int NM_REQ_SEQ = 0x22D81;
        public const int NM_RESPONSIBLE_LOCAL_DXA = 0x22A82;
        public const int NM_RETURN = (NM_FIRST - 4);
        public const int NM_RID_SERVER = 0x25A82;
        public const int NM_ROLE_OCCUPANT = 0x10021;
        public const int NM_ROUTING_LIST = 0x26282;
        public const int NM_RTS_CHECKPOINT_SIZE = 0x21881;
        public const int NM_RTS_RECOVERY_TIMEOUT = 0x21781;
        public const int NM_RTS_WINDOW_SIZE = 0x21981;
        public const int NM_RUNS_ON = 0x23981;
        public const int NM_S_SELECTOR = 0x21C82;
        public const int NM_S_SELECTOR_INBOUND = 0x1002E;
        public const int NM_SCHEMA_FLAGS = 0x24E83;
        public const int NM_SCHEMA_VERSION = 0x25783;
        public const int NM_SEARCH_FLAGS = 0x24E82;
        public const int NM_SEARCH_GUIDE = 0x1000E;
        public const int NM_SECURITY_PROTOCOL = 0x10052;
        public const int NM_SEE_ALSO = 0x10022;
        public const int NM_SERIAL_NBR = 0x10005;
        public const int NM_SERVICE_ACTION_FIRST = 0x22181;
        public const int NM_SERVICE_ACTION_OTHER = 0x1003B;
        public const int NM_SERVICE_ACTION_SECOND = 0x1003C;
        public const int NM_SERVICE_RESTART_DELAY = 0x22281;
        public const int NM_SERVICE_RESTART_MESSAGE = 0x1003A;
        public const int NM_SESSION_DISCONNECT_TIMER = 0x21A81;
        public const int NM_SETCURSOR = (NM_FIRST - 17);
        public const int NM_SETFOCUS = (NM_FIRST - 7);
        public const int NM_SITE_AFFINITY = 0x23283;
        public const int NM_SITE_FOLDER_GUID = 0x24883;
        public const int NM_SITE_FOLDER_SERVER = 0x24983;
        public const int NM_SITE_PROXY_SPACE = 0x20183;
        public const int NM_SPACE_LAST_COMPUTED = 0x20283;
        public const int NM_STATE_OR_PROV_NAME = 0x10008;
        public const int NM_STREET_ADDRESS = 0x10009;
        public const int NM_SUB_CLASS_OF = 0x10015;
        public const int NM_SUB_REFS = 0x10007;
        public const int NM_SUB_SITE = 0x25683;
        public const int NM_SUBMISSION_CONT_LENGTH = 0x21882;
        public const int NM_SUPPORT_APPL_CONTEXT = 0x1001E;
        public const int NM_SUPPORTING_STACK = 0x1001C;
        public const int NM_SUPPORTING_STACK_BL = 0x26582;
        public const int NM_SURNAME = 0x10004;
        public const int NM_T_SELECTOR = 0x21B82;
        public const int NM_T_SELECTOR_INBOUND = 0x10005;
        public const int NM_TARGET_ADDRESS = 0x26082;
        public const int NM_TARGET_MTAS = 0x20382;
        public const int NM_TELEPHONE_ASSISTANT = 0x1004F;
        public const int NM_TELEPHONE_FAX = 0x1002A;
        public const int NM_TELEPHONE_HOME = 0x1004D;
        public const int NM_TELEPHONE_HOME2 = 0x21582;
        public const int NM_TELEPHONE_MOBILE = 0x10004;
        public const int NM_TELEPHONE_OFFICE1 = 0x10076;
        public const int NM_TELEPHONE_OFFICE2 = 0x10012;
        public const int NM_TELEPHONE_PAGER = 0x20682;
        public const int NM_TELETEX_TERM_IDENT = 0x10016;
        public const int NM_TELEX_NBR = 0x10015;
        public const int NM_TEMP_ASSOC_THRESHOLD = 0x24982;
        public const int NM_TEXT_COUNTRY = 0x20381;
        public const int NM_THEMECHANGED = (NM_FIRST - 22);
        public const int NM_TITLE = 0x1000C;
        public const int NM_TOMBSTONE_LIFETIME = 0x10036;
        public const int NM_TOOLTIPSCREATED = (NM_FIRST - 19);
        public const int NM_TRACKING_LOG_PATH_NAME = 0x25B82;
        public const int NM_TRANS_RETRY_MINS = 0x25B81;
        public const int NM_TRANS_TIMEOUT_MINS = 0x25C81;
        public const int NM_TRANSFER_RETRY_INTERVAL = 0x20581;
        public const int NM_TRANSFER_TIMEOUT_NON_URGENT = 0x20881;
        public const int NM_TRANSFER_TIMEOUT_NORMAL = 0x20981;
        public const int NM_TRANSFER_TIMEOUT_URGENT = 0x20E81;
        public const int NM_TRANSLATION_TABLE_USED = 0x20C83;
        public const int NM_TRANSPORT_EXPEDITED_DATA = 0x21681;
        public const int NM_TRUST_LEVEL = 0x10046;
        public const int NM_TURN_REQUEST_THRESHOLD = 0x10026;
        public const int NM_TWO_WAY_ALTERNATE_FACILITY = 0x10028;
        public const int NM_UNAUTH_ORIG = 0x25D81;
        public const int NM_UNAUTH_ORIG_BL = 0x22482;
        public const int NM_USE_SERVER_VALUES = 0x25983;
        public const int NM_USER_CERT = 0x10024;
        public const int NM_USER_PASSWORD = 0x10023;
        public const int NM_USN_CHANGED = 0x10078;
        public const int NM_USN_CREATED = 0x10013;
        public const int NM_USN_DSA_LAST_OBJ_REMOVED = 0x20B82;
        public const int NM_USN_INTERSITE = 0x25583;
        public const int NM_USN_LAST_OBJ_REM = 0x10079;
        public const int NM_USN_SOURCE = 0x27682;
        public const int NM_WHEN_CHANGED = 0x10003;
        public const int NM_WHEN_CREATED = 0x10002;
        public const int NM_WWW_HOME_PAGE = 0x25083;
        public const int NM_X121_ADDRESS = 0x10018;
        public const int NM_X25_CALL_USER_DATA_INCOMING = 0x23C82;
        public const int NM_X25_CALL_USER_DATA_OUTGOING = 0x23D82;
        public const int NM_X25_FACILITIES_DATA_INCOMING = 0x23E82;
        public const int NM_X25_FACILITIES_DATA_OUTGOING = 0x23F82;
        public const int NM_X25_LEASED_LINE_PORT = 0x24182;
        public const int NM_X25_LEASED_OR_SWITCHED = 0x27482;
        public const int NM_X25_REMOTE_MTA_PHONE = 0x27582;
        public const int NM_X400_ATTACHMENT_TYPE = 0x10063;
        public const int NM_X400_SELECTOR_SYNTAX = 0x23B83;
        public const int NM_X500_ACCESS_CONTROL_LIST = 0x23183;
        public const int NM_X509_CERT = 0x24D83;
        public const int NM_XMIT_TIMEOUT_NON_URGENT = 0x10054;
        public const int NM_XMIT_TIMEOUT_NORMAL = 0x10043;
        public const int NM_XMIT_TIMEOUT_URGENT = 0x10035;
        public const int OID_ATM_MY_IP_NM_ADDRESS = 0x801020F;
        public const int RBNM_ID = 0x1;
        public const int RBNM_LPARAM = 0x4;
        public const int RBNM_STYLE = 0x2;
        public const int OCM__BASE = (WM_USER + 0x1c00);
        public const int OCM_CHARTOITEM = (OCM__BASE + WM_CHARTOITEM);
        public const int OCM_COMMAND = (OCM__BASE + WM_COMMAND);
        public const int OCM_COMPAREITEM = (OCM__BASE + WM_COMPAREITEM);
        public const int OCM_CTLCOLOR = (OCM__BASE + WM_CTLCOLOR);
        public const int OCM_CTLCOLORBTN = (OCM__BASE + WM_CTLCOLORBTN);
        public const int OCM_CTLCOLORDLG = (OCM__BASE + WM_CTLCOLORDLG);
        public const int OCM_CTLCOLOREDIT = (OCM__BASE + WM_CTLCOLOREDIT);
        public const int OCM_CTLCOLORLISTBOX = (OCM__BASE + WM_CTLCOLORLISTBOX);
        public const int OCM_CTLCOLORMSGBOX = (OCM__BASE + WM_CTLCOLORMSGBOX);
        public const int OCM_CTLCOLORSCROLLBAR = (OCM__BASE + WM_CTLCOLORSCROLLBAR);
        public const int OCM_CTLCOLORSTATIC = (OCM__BASE + WM_CTLCOLORSTATIC);
        public const int OCM_DELETEITEM = (OCM__BASE + WM_DELETEITEM);
        public const int OCM_DRAWITEM = (OCM__BASE + WM_DRAWITEM);
        public const int OCM_HSCROLL = (OCM__BASE + WM_HSCROLL);
        public const int OCM_MEASUREITEM = (OCM__BASE + WM_MEASUREITEM);
        public const int OCM_NOTIFY = (OCM__BASE + WM_NOTIFY);
        public const int OCM_PARENTNOTIFY = (OCM__BASE + WM_PARENTNOTIFY);
        public const int OCM_VKEYTOITEM = (OCM__BASE + WM_VKEYTOITEM);
        public const int OCM_VSCROLL = (OCM__BASE + WM_VSCROLL);
        public const int PBM_DELTAPOS = (WM_USER + 3);
        public const int PBM_GETPOS = (WM_USER + 8);
        public const int PBM_GETRANGE = (WM_USER + 7);
        public const int PBM_SETBARCOLOR = (WM_USER + 9);
        public const int PBM_SETBKCOLOR = CCM_SETBKCOLOR;
        public const int PBM_SETPOS = (WM_USER + 2);
        public const int PBM_SETRANGE = (WM_USER + 1);
        public const int PBM_SETRANGE32 = (WM_USER + 6);
        public const int PBM_SETSTEP = (WM_USER + 4);
        public const int PBM_STEPIT = (WM_USER + 5);
        public const int PGM_FIRST = 0x1400;
        public const int PGM_FORWARDMOUSE = (PGM_FIRST + 3);
        public const int PGM_GETBKCOLOR = (PGM_FIRST + 5);
        public const int PGM_GETBORDER = (PGM_FIRST + 7);
        public const int PGM_GETBUTTONSIZE = (PGM_FIRST + 11);
        public const int PGM_GETBUTTONSTATE = (PGM_FIRST + 12);
        public const int PGM_GETDROPTARGET = CCM_GETDROPTARGET;
        public const int PGM_GETPOS = (PGM_FIRST + 9);
        public const int PGM_RECALCSIZE = (PGM_FIRST + 2);
        public const int PGM_SETBKCOLOR = (PGM_FIRST + 4);
        public const int PGM_SETBORDER = (PGM_FIRST + 6);
        public const int PGM_SETBUTTONSIZE = (PGM_FIRST + 10);
        public const int PGM_SETCHILD = (PGM_FIRST + 1);
        public const int PGM_SETPOS = (PGM_FIRST + 8);
        public const int PSM_ADDPAGE = (WM_USER + 103);
        public const int PSM_APPLY = (WM_USER + 110);
        public const int PSM_CANCELTOCLOSE = (WM_USER + 107);
        public const int PSM_CHANGED = (WM_USER + 104);
        public const int PSM_GETCURRENTPAGEHWND = (WM_USER + 118);
        public const int PSM_GETRESULT = (WM_USER + 135);
        public const int PSM_GETTABCONTROL = (WM_USER + 116);
        public const int PSM_HWNDTOINDEX = (WM_USER + 129);
        public const int PSM_IDTOINDEX = (WM_USER + 133);
        public const int PSM_INDEXTOHWND = (WM_USER + 130);
        public const int PSM_INDEXTOID = (WM_USER + 134);
        public const int PSM_INDEXTOPAGE = (WM_USER + 132);
        public const int PSM_INSERTPAGE = (WM_USER + 119);
        public const int PSM_ISDIALOGMESSAGE = (WM_USER + 117);
        public const int PSM_PAGETOINDEX = (WM_USER + 131);
        public const int PSM_PRESSBUTTON = (WM_USER + 113);
        public const int PSM_QUERYSIBLINGS = (WM_USER + 108);
        public const int PSM_REBOOTSYSTEM = (WM_USER + 106);
        public const int PSM_RECALCPAGESIZES = (WM_USER + 136);
        public const int PSM_REMOVEPAGE = (WM_USER + 102);
        public const int PSM_RESTARTWINDOWS = (WM_USER + 105);
        public const int PSM_SETCURSEL = (WM_USER + 101);
        public const int PSM_SETCURSELID = (WM_USER + 114);
        public const int PSM_SETFINISHTEXTA = (WM_USER + 115);
        public const int PSM_SETFINISHTEXTW = (WM_USER + 121);
        public const int PSM_SETHEADERSUBTITLEA = (WM_USER + 127);
        public const int PSM_SETHEADERSUBTITLEW = (WM_USER + 128);
        public const int PSM_SETHEADERTITLEA = (WM_USER + 125);
        public const int PSM_SETHEADERTITLEW = (WM_USER + 126);
        public const int PSM_SETTITLEA = (WM_USER + 111);
        public const int PSM_SETTITLEW = (WM_USER + 120);
        public const int PSM_SETWIZBUTTONS = (WM_USER + 112);
        public const int PSM_UNCHANGED = (WM_USER + 109);
        public const int RBBIM_BACKGROUND = 0x80;
        public const int RBBIM_CHILD = 0x10;
        public const int RBBIM_CHILDSIZE = 0x20;
        public const int RBBIM_COLORS = 0x2;
        public const int RBBIM_HEADERSIZE = 0x800;
        public const int RBBIM_ID = 0x100;
        public const int RBBIM_IDEALSIZE = 0x200;
        public const int RBBIM_IMAGE = 0x8;
        public const int RBBIM_LPARAM = 0x400;
        public const int RBBIM_SIZE = 0x40;
        public const int RBBIM_STYLE = 0x1;
        public const int RBBIM_TEXT = 0x4;
        public const int RBIM_IMAGELIST = 0x1;
        public const int SBM_GETSCROLLBARINFO = 0xEB;
        public const int SBM_GETSCROLLINFO = 0xEA;
        public const int SBM_SETSCROLLINFO = 0xE9;
        public const int SFVM_ADDOBJECT = 0x3;
        public const int SFVM_CUTOBJECTS = 0x10;
        public const int SFVM_GETARRANGECOLUMN = 0x2;
        public const int SFVM_GETAUTOARRANGE = 0x13;
        public const int SFVM_GETDRAGPOINT = 0xC;
        public const int SFVM_GETDROPPOINT = 0xD;
        public const int SFVM_GETITEMCOUNT = 0x4;
        public const int SFVM_GETITEMPIDL = 0x5;
        public const int SFVM_GETITEMSPACING = 0x15;
        public const int SFVM_GETSELECTEDCOUNT = 0x14;
        public const int SFVM_GETSELECTEDOBJECTS = 0x9;
        public const int SFVM_ISDROPONBACKGROUND = 0xF;
        public const int SFVM_ISDROPONSOURCE = 0xA;
        public const int SFVM_LINEUPICONS = 0x12;
        public const int SFVM_MOVEICONS = 0xB;
        public const int SFVM_REARRANGE = 0x1;
        public const int SFVM_REFRESHOBJECT = 0x16;
        public const int SFVM_REMOVEOBJECT = 0x6;
        public const int SFVM_SETCLIPBOARDPOINTS = 0x17;
        public const int SFVM_SETOBJECTPOS = 0xE;
        public const int SFVM_SETREDRAW = 0x8;
        public const int SFVM_TOGGLEAUTOARRANGE = 0x11;
        public const int SFVM_UPDATEOBJECT = 0x7;
        public const int SM_ARRANGE = 56;
        public const int SM_CLEANBOOT = 67;
        public const int SM_CMONITORS = 80;
        public const int SM_CXDRAG = 68;
        public const int SM_CXEDGE = 45;
        public const int SM_CXMAXIMIZED = 61;
        public const int SM_CXMAXTRACK = 59;
        public const int SM_CXMENUCHECK = 71;
        public const int SM_CXMENUSIZE = 54;
        public const int SM_CXMINIMIZED = 57;
        public const int SM_CXMINSPACING = 47;
        public const int SM_CXSMICON = 49;
        public const int SM_CXSMSIZE = 52;
        public const int SM_CXVIRTUALSCREEN = 78;
        public const int SM_CYDRAG = 69;
        public const int SM_CYEDGE = 46;
        public const int SM_CYMAXIMIZED = 62;
        public const int SM_CYMAXTRACK = 60;
        public const int SM_CYMENUCHECK = 72;
        public const int SM_CYMENUSIZE = 55;
        public const int SM_CYMINIMIZED = 58;
        public const int SM_CYMINSPACING = 48;
        public const int SM_CYSMCAPTION = 51;
        public const int SM_CYSMICON = 50;
        public const int SM_CYSMSIZE = 53;
        public const int SM_CYVIRTUALSCREEN = 79;
        public const int SM_FOCUS_TYPE_LM_DOMAIN = 2;
        public const int SM_FOCUS_TYPE_LM_SERVER = 5;
        public const int SM_FOCUS_TYPE_NT_DOMAIN = 1;
        public const int SM_FOCUS_TYPE_NT_SERVER = 4;
        public const int SM_FOCUS_TYPE_UNKNOWN_DOMAIN = 3;
        public const int SM_FOCUS_TYPE_UNKNOWN_SERVER = 7;
        public const int SM_FOCUS_TYPE_WFW_SERVER = 6;
        public const int SM_GETCURFOCUSA = (WM_USER + 1003);
        public const int SM_GETCURFOCUSW = (WM_USER + 1004);
        public const int SM_GETOPTIONS = (WM_USER + 1005);
        public const int SM_GETSELCOUNT = (WM_USER + 1000);
        public const int SM_GETSERVERSELA = (WM_USER + 1001);
        public const int SM_GETSERVERSELW = (WM_USER + 1002);
        public const int SM_IMMENABLED = 82;
        public const int SM_MIDEASTENABLED = 74;
        public const int SM_MOUSEWHEELPRESENT = 75;
        public const int SM_NETWORK = 63;
        public const int SM_REMOTESESSION = 0x1000;
        public const int SM_SAMEDISPLAYFORMAT = 81;
        public const int SM_SECURE = 44;
        public const int SM_SHOWSOUNDS = 70;
        public const int SM_SLOWMACHINE = 73;
        public const int SM_XVIRTUALSCREEN = 76;
        public const int SM_YVIRTUALSCREEN = 77;
        public const int SOUND_SYSTEM_APPEND = 14;
        public const int SOUND_SYSTEM_APPSTART = 12;
        public const int SOUND_SYSTEM_BEEP = 3;
        public const int SOUND_SYSTEM_ERROR = 4;
        public const int SOUND_SYSTEM_FAULT = 13;
        public const int SOUND_SYSTEM_INFORMATION = 7;
        public const int SOUND_SYSTEM_MAXIMIZE = 8;
        public const int SOUND_SYSTEM_MENUCOMMAND = 15;
        public const int SOUND_SYSTEM_MENUPOPUP = 16;
        public const int SOUND_SYSTEM_MINIMIZE = 9;
        public const int SOUND_SYSTEM_QUESTION = 5;
        public const int SOUND_SYSTEM_RESTOREDOWN = 11;
        public const int SOUND_SYSTEM_RESTOREUP = 10;
        public const int SOUND_SYSTEM_SHUTDOWN = 2;
        public const int SOUND_SYSTEM_STARTUP = 1;
        public const int SOUND_SYSTEM_WARNING = 6;
        public const int STATE_SYSTEM_ALERT_HIGH = 0x10000000;
        public const int STATE_SYSTEM_ALERT_LOW = 0x4000000;
        public const int STATE_SYSTEM_ALERT_MEDIUM = 0x8000000;
        public const int STATE_SYSTEM_ANIMATED = 0x4000;
        public const int STATE_SYSTEM_BUSY = 0x800;
        public const int STATE_SYSTEM_CHECKED = 0x10;
        public const int STATE_SYSTEM_COLLAPSED = 0x400;
        public const int STATE_SYSTEM_DEFAULT = 0x100;
        public const int STATE_SYSTEM_EXPANDED = 0x200;
        public const int STATE_SYSTEM_EXTSELECTABLE = 0x2000000;
        public const int STATE_SYSTEM_FLOATING = 0x1000;
        public const int STATE_SYSTEM_FOCUSABLE = 0x100000;
        public const int STATE_SYSTEM_FOCUSED = 0x4;
        public const int STATE_SYSTEM_HOTTRACKED = 0x80;
        public const int STATE_SYSTEM_INDETERMINATE = STATE_SYSTEM_MIXED;
        public const int STATE_SYSTEM_INVISIBLE = 0x8000;
        public const int STATE_SYSTEM_LINKED = 0x400000;
        public const int STATE_SYSTEM_MARQUEED = 0x2000;
        public const int STATE_SYSTEM_MIXED = 0x20;
        public const int STATE_SYSTEM_MOVEABLE = 0x40000;
        public const int STATE_SYSTEM_MULTISELECTABLE = 0x1000000;
        public const int STATE_SYSTEM_NORMAL = 0;
        public const int STATE_SYSTEM_OFFSCREEN = 0x10000;
        public const int STATE_SYSTEM_PRESSED = 0x8;
        public const int STATE_SYSTEM_PROTECTED = 0x20000000;
        public const int STATE_SYSTEM_READONLY = 0x40;
        public const int STATE_SYSTEM_SELECTABLE = 0x200000;
        public const int STATE_SYSTEM_SELECTED = 0x2;
        public const int STATE_SYSTEM_SELFVOICING = 0x80000;
        public const int STATE_SYSTEM_SIZEABLE = 0x20000;
        public const int STATE_SYSTEM_TRAVERSED = 0x800000;
        public const int STATE_SYSTEM_UNAVAILABLE = 0x1;
        public const int STATE_SYSTEM_VALID = 0x3FFFFFFF;
        public const int STGM_COLLECTION = 0x2000;
        public const int STGM_CONVERT = 0x20000;
        public const int STGM_CREATE = 0x1000;
        public const int STGM_DELETEONRELEASE = 0x4000000;
        public const int STGM_DIRECT = 0x0;
        public const int STGM_DIRECT_SWMR = 0x400000;
        public const int STGM_FAILIFTHERE = 0x0;
        public const int STGM_NOSCRATCH = 0x100000;
        public const int STGM_NOSNAPSHOT = 0x200000;
        public const int STGM_OPEN = unchecked((int)0x80000000);
        public const int STGM_OUTPUT = 0x8000;
        public const int STGM_PRIORITY = 0x40000;
        public const int STGM_READ = 0x0;
        public const int STGM_READWRITE = 0x2;
        public const int STGM_RECURSIVE = 0x1000000;
        public const int STGM_SHARE_DENY_NONE = 0x40;
        public const int STGM_SHARE_DENY_READ = 0x30;
        public const int STGM_SHARE_DENY_WRITE = 0x20;
        public const int STGM_SHARE_EXCLUSIVE = 0x10;
        public const int STGM_SIMPLE = 0x8000000;
        public const int STGM_STRICTOPEN = 0x40000000;
        public const int STGM_TRANSACTED = 0x10000;
        public const int STGM_WRITE = 0x1;
        public const int STGSTRM_CREATE = 0x1000;
        public const int STGSTRM_CURRENT = 0x10000000;
        public const int STGSTRM_MODIFY = 0x2;
        public const int STM_GETIMAGE = 0x173;
        public const int STM_ONLY_THIS_INTERFACE = 0x1;
        public const int STM_ONLY_THIS_NAME = 0x8;
        public const int STM_ONLY_THIS_PROTOCOL = 0x2;
        public const int STM_ONLY_THIS_TYPE = 0x4;
        public const int STM_ORDER_BY_INTERFACE_TYPE_NAME = 1;
        public const int STM_ORDER_BY_TYPE_AND_NAME = 0;
        public const int STM_SETIMAGE = 0x172;
        public const int TBM_CLEARSEL = (WM_USER + 19);
        public const int TBM_CLEARTICS = (WM_USER + 9);
        public const int TBM_GETBUDDY = (WM_USER + 33);
        public const int TBM_GETCHANNELRECT = (WM_USER + 26);
        public const int TBM_GETLINESIZE = (WM_USER + 24);
        public const int TBM_GETNUMTICS = (WM_USER + 16);
        public const int TBM_GETPAGESIZE = (WM_USER + 22);
        public const int TBM_GETPOS = (WM_USER);
        public const int TBM_GETPTICS = (WM_USER + 14);
        public const int TBM_GETRANGEMAX = (WM_USER + 2);
        public const int TBM_GETRANGEMIN = (WM_USER + 1);
        public const int TBM_GETSELEND = (WM_USER + 18);
        public const int TBM_GETSELSTART = (WM_USER + 17);
        public const int TBM_GETTHUMBLENGTH = (WM_USER + 28);
        public const int TBM_GETTHUMBRECT = (WM_USER + 25);
        public const int TBM_GETTIC = (WM_USER + 3);
        public const int TBM_GETTICPOS = (WM_USER + 15);
        public const int TBM_GETTOOLTIPS = (WM_USER + 30);
        public const int TBM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
        public const int TBM_SETBUDDY = (WM_USER + 32);
        public const int TBM_SETLINESIZE = (WM_USER + 23);
        public const int TBM_SETPAGESIZE = (WM_USER + 21);
        public const int TBM_SETPOS = (WM_USER + 5);
        public const int TBM_SETRANGE = (WM_USER + 6);
        public const int TBM_SETRANGEMAX = (WM_USER + 8);
        public const int TBM_SETRANGEMIN = (WM_USER + 7);
        public const int TBM_SETSEL = (WM_USER + 10);
        public const int TBM_SETSELEND = (WM_USER + 12);
        public const int TBM_SETSELSTART = (WM_USER + 11);
        public const int TBM_SETTHUMBLENGTH = (WM_USER + 27);
        public const int TBM_SETTIC = (WM_USER + 4);
        public const int TBM_SETTICFREQ = (WM_USER + 20);
        public const int TBM_SETTIPSIDE = (WM_USER + 31);
        public const int TBM_SETTOOLTIPS = (WM_USER + 29);
        public const int TBM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
        public const int TC_NOTIFY_PARAM_CHANGED = 4;
        public const int TCM_ADJUSTRECT = (TCM_FIRST + 40);
        public const int TCM_DELETEALLITEMS = (TCM_FIRST + 9);
        public const int TCM_DELETEITEM = (TCM_FIRST + 8);
        public const int TCM_DESELECTALL = (TCM_FIRST + 50);
        public const int TCM_FIRST = 0x1300;
        public const int TCM_GETCURFOCUS = (TCM_FIRST + 47);
        public const int TCM_GETCURSEL = (TCM_FIRST + 11);
        public const int TCM_GETEXTENDEDSTYLE = (TCM_FIRST + 53);
        public const int TCM_GETIMAGELIST = (TCM_FIRST + 2);
        public const int TCM_GETITEMA = (TCM_FIRST + 5);
        public const int TCM_GETITEMCOUNT = (TCM_FIRST + 4);
        public const int TCM_GETITEMRECT = (TCM_FIRST + 10);
        public const int TCM_GETITEMW = (TCM_FIRST + 60);
        public const int TCM_GETROWCOUNT = (TCM_FIRST + 44);
        public const int TCM_GETTOOLTIPS = (TCM_FIRST + 45);
        public const int TCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
        public const int TCM_HIGHLIGHTITEM = (TCM_FIRST + 51);
        public const int TCM_HITTEST = (TCM_FIRST + 13);
        public const int TCM_INSERTITEMA = (TCM_FIRST + 7);
        public const int TCM_INSERTITEMW = (TCM_FIRST + 62);
        public const int TCM_REMOVEIMAGE = (TCM_FIRST + 42);
        public const int TCM_SETCURFOCUS = (TCM_FIRST + 48);
        public const int TCM_SETCURSEL = (TCM_FIRST + 12);
        public const int TCM_SETEXTENDEDSTYLE = (TCM_FIRST + 52);
        public const int TCM_SETIMAGELIST = (TCM_FIRST + 3);
        public const int TCM_SETITEMA = (TCM_FIRST + 6);
        public const int TCM_SETITEMEXTRA = (TCM_FIRST + 14);
        public const int TCM_SETITEMSIZE = (TCM_FIRST + 41);
        public const int TCM_SETITEMW = (TCM_FIRST + 61);
        public const int TCM_SETMINTABWIDTH = (TCM_FIRST + 49);
        public const int TCM_SETPADDING = (TCM_FIRST + 43);
        public const int TCM_SETTOOLTIPS = (TCM_FIRST + 46);
        public const int TCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
        public const int TM_JOIN = 2;
        public const int TM_OK = 0;
        public const int TM_RESUME = 1;
        public const int TPM_BOTTOMALIGN = 0x20;
        public const int TPM_HORIZONTAL = 0x0;
        public const int TPM_HORNEGANIMATION = 0x800;
        public const int TPM_HORPOSANIMATION = 0x400;
        public const int TPM_NOANIMATION = 0x4000;
        public const int TPM_NONOTIFY = 0x80;
        public const int TPM_RECURSE = 0x1;
        public const int TPM_RETURNCMD = 0x100;
        public const int TPM_TOPALIGN = 0x0;
        public const int TPM_VCENTERALIGN = 0x10;
        public const int TPM_VERNEGANIMATION = 0x2000;
        public const int TPM_VERPOSANIMATION = 0x1000;
        public const int TPM_VERTICAL = 0x40;
        public const int TTM_ADDTOOLA = (WM_USER + 4);
        public const int TTM_ADDTOOLW = (WM_USER + 50);
        public const int TTM_ADJUSTRECT = (WM_USER + 31);
        public const int TTM_DELTOOLA = (WM_USER + 5);
        public const int TTM_DELTOOLW = (WM_USER + 51);
        public const int TTM_ENUMTOOLSA = (WM_USER + 14);
        public const int TTM_ENUMTOOLSW = (WM_USER + 58);
        public const int TTM_GETBUBBLESIZE = (WM_USER + 30);
        public const int TTM_GETCURRENTTOOLA = (WM_USER + 15);
        public const int TTM_GETCURRENTTOOLW = (WM_USER + 59);
        public const int TTM_GETDELAYTIME = (WM_USER + 21);
        public const int TTM_GETMARGIN = (WM_USER + 27);
        public const int TTM_GETMAXTIPWIDTH = (WM_USER + 25);
        public const int TTM_GETTEXTA = (WM_USER + 11);
        public const int TTM_GETTEXTW = (WM_USER + 56);
        public const int TTM_GETTIPBKCOLOR = (WM_USER + 22);
        public const int TTM_GETTIPTEXTCOLOR = (WM_USER + 23);
        public const int TTM_GETTOOLCOUNT = (WM_USER + 13);
        public const int TTM_GETTOOLINFOA = (WM_USER + 8);
        public const int TTM_GETTOOLINFOW = (WM_USER + 53);
        public const int TTM_HITTESTA = (WM_USER + 10);
        public const int TTM_HITTESTW = (WM_USER + 55);
        public const int TTM_NEWTOOLRECTA = (WM_USER + 6);
        public const int TTM_NEWTOOLRECTW = (WM_USER + 52);
        public const int TTM_POP = (WM_USER + 28);
        public const int TTM_POPUP = (WM_USER + 34);
        public const int TTM_RELAYEVENT = (WM_USER + 7);
        public const int TTM_SETMARGIN = (WM_USER + 26);
        public const int TTM_SETTITLEA = (WM_USER + 32);
        public const int TTM_SETTITLEW = (WM_USER + 33);
        public const int TTM_SETTOOLINFOA = (WM_USER + 9);
        public const int TTM_SETTOOLINFOW = (WM_USER + 54);
        public const int TTM_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
        public const int TTM_TRACKACTIVATE = (WM_USER + 17);
        public const int TTM_TRACKPOSITION = (WM_USER + 18);
        public const int TTM_UPDATE = (WM_USER + 29);
        public const int TTM_UPDATETIPTEXTA = (WM_USER + 12);
        public const int TTM_UPDATETIPTEXTW = (WM_USER + 57);
        public const int TTM_WINDOWFROMPOINT = (WM_USER + 16);
        public const int TVM_CREATEDRAGIMAGE = (TV_FIRST + 18);
        public const int TVM_DELETEITEM = (TV_FIRST + 1);
        public const int TVM_EDITLABELA = (TV_FIRST + 14);
        public const int TVM_EDITLABELW = (TV_FIRST + 65);
        public const int TVM_ENDEDITLABELNOW = (TV_FIRST + 22);
        public const int TVM_ENSUREVISIBLE = (TV_FIRST + 20);
        public const int TVM_EXPAND = (TV_FIRST + 2);
        public const int TVM_GETBKCOLOR = (TV_FIRST + 31);
        public const int TVM_GETCOUNT = (TV_FIRST + 5);
        public const int TVM_GETEDITCONTROL = (TV_FIRST + 15);
        public const int TVM_GETIMAGELIST = (TV_FIRST + 8);
        public const int TVM_GETINDENT = (TV_FIRST + 6);
        public const int TVM_GETINSERTMARKCOLOR = (TV_FIRST + 38);
        public const int TVM_GETISEARCHSTRINGA = (TV_FIRST + 23);
        public const int TVM_GETISEARCHSTRINGW = (TV_FIRST + 64);
        public const int TVM_GETITEMA = (TV_FIRST + 12);
        public const int TVM_GETITEMHEIGHT = (TV_FIRST + 28);
        public const int TVM_GETITEMRECT = (TV_FIRST + 4);
        public const int TVM_GETITEMSTATE = (TV_FIRST + 39);
        public const int TVM_GETITEMW = (TV_FIRST + 62);
        public const int TVM_GETLINECOLOR = (TV_FIRST + 41);
        public const int TVM_GETNEXTITEM = (TV_FIRST + 10);
        public const int TVM_GETSCROLLTIME = (TV_FIRST + 34);
        public const int TVM_GETTEXTCOLOR = (TV_FIRST + 32);
        public const int TVM_GETTOOLTIPS = (TV_FIRST + 25);
        public const int TVM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
        public const int TVM_GETVISIBLECOUNT = (TV_FIRST + 16);
        public const int TVM_HITTEST = (TV_FIRST + 17);
        public const int TVM_INSERTITEMA = (TV_FIRST + 0);
        public const int TVM_INSERTITEMW = (TV_FIRST + 50);
        public const int TVM_MAPACCIDTOHTREEITEM = (TV_FIRST + 42);
        public const int TVM_MAPHTREEITEMTOACCID = (TV_FIRST + 43);
        public const int TVM_SELECTITEM = (TV_FIRST + 11);
        public const int TVM_SETBKCOLOR = (TV_FIRST + 29);
        public const int TVM_SETIMAGELIST = (TV_FIRST + 9);
        public const int TVM_SETINDENT = (TV_FIRST + 7);
        public const int TVM_SETINSERTMARK = (TV_FIRST + 26);
        public const int TVM_SETINSERTMARKCOLOR = (TV_FIRST + 37);
        public const int TVM_SETITEMA = (TV_FIRST + 13);
        public const int TVM_SETITEMHEIGHT = (TV_FIRST + 27);
        public const int TVM_SETITEMW = (TV_FIRST + 63);
        public const int TVM_SETLINECOLOR = (TV_FIRST + 40);
        public const int TVM_SETSCROLLTIME = (TV_FIRST + 33);
        public const int TVM_SETTEXTCOLOR = (TV_FIRST + 30);
        public const int TVM_SETTOOLTIPS = (TV_FIRST + 24);
        public const int TVM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
        public const int TVM_SORTCHILDREN = (TV_FIRST + 19);
        public const int TVM_SORTCHILDRENCB = (TV_FIRST + 21);
        public const int UDM_GETACCEL = (WM_USER + 108);
        public const int UDM_GETBASE = (WM_USER + 110);
        public const int UDM_GETBUDDY = (WM_USER + 106);
        public const int UDM_GETPOS = (WM_USER + 104);
        public const int UDM_GETPOS32 = (WM_USER + 114);
        public const int UDM_GETRANGE = (WM_USER + 102);
        public const int UDM_GETRANGE32 = (WM_USER + 112);
        public const int UDM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
        public const int UDM_SETACCEL = (WM_USER + 107);
        public const int UDM_SETBASE = (WM_USER + 109);
        public const int UDM_SETBUDDY = (WM_USER + 105);
        public const int UDM_SETPOS = (WM_USER + 103);
        public const int UDM_SETPOS32 = (WM_USER + 113);
        public const int UDM_SETRANGE = (WM_USER + 101);
        public const int UDM_SETRANGE32 = (WM_USER + 111);
        public const int UDM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
        public const int UM_FLAGS = 0x140;
        public const int UM_FOCUS_TYPE_DOMAIN = 1;
        public const int UM_FOCUS_TYPE_LM = 3;
        public const int UM_FOCUS_TYPE_UNKNOWN = 4;
        public const int UM_FOCUS_TYPE_WINNT = 2;
        public const int UM_GETCURFOCUSA = (WM_USER + 1005);
        public const int UM_GETCURFOCUSW = (WM_USER + 1006);
        public const int UM_GETGROUPSELA = (WM_USER + 1003);
        public const int UM_GETGROUPSELW = (WM_USER + 1004);
        public const int UM_GETOPTIONS = (WM_USER + 1007);
        public const int UM_GETOPTIONS2 = (WM_USER + 1008);
        public const int UM_GETSELCOUNT = (WM_USER + 1000);
        public const int UM_GETUSERSELA = (WM_USER + 1001);
        public const int UM_GETUSERSELW = (WM_USER + 1002);
        public const int UM_SELTYPE_GLOBALGROUP = 0x8 | UM_SELTYPE_GROUP;
        public const int UM_SELTYPE_GROUP = 0x20;
        public const int UM_SELTYPE_LOCALGROUP = 0x4 | UM_SELTYPE_GROUP;
        public const int UM_SELTYPE_NORMALUSER = 0x1 | UM_SELTYPE_USER;
        public const int UM_SELTYPE_REMOTEUSER = 0x2 | UM_SELTYPE_USER;
        public const int UM_SELTYPE_USER = 0x10;
        public const int VK_ACCEPT = 0x1E;
        public const int VK_APPS = 0x5D;
        public const int VK_BROWSER_BACK = 0xA6;
        public const int VK_BROWSER_FAVORITES = 0xAB;
        public const int VK_BROWSER_FORWARD = 0xA7;
        public const int VK_BROWSER_HOME = 0xAC;
        public const int VK_BROWSER_REFRESH = 0xA8;
        public const int VK_BROWSER_SEARCH = 0xAA;
        public const int VK_BROWSER_STOP = 0xA9;
        public const int VK_CONVERT = 0x1C;
        public const int VK_DBE_ALPHANUMERIC = 0xf0;
        public const int VK_DBE_CODEINPUT = 0xfa;
        public const int VK_DBE_DBCSCHAR = 0xf4;
        public const int VK_DBE_DETERMINESTRING = 0xfc;
        public const int VK_DBE_ENTERDLGCONVERSIONMODE = 0xfd;
        public const int VK_DBE_ENTERIMECONFIGMODE = 0xf8;
        public const int VK_DBE_ENTERWORDREGISTERMODE = 0xf7;
        public const int VK_DBE_FLUSHSTRING = 0xf9;
        public const int VK_DBE_HIRAGANA = 0xf2;
        public const int VK_DBE_KATAKANA = 0xf1;
        public const int VK_DBE_NOCODEINPUT = 0xfb;
        public const int VK_DBE_NOROMAN = 0xf6;
        public const int VK_DBE_ROMAN = 0xf5;
        public const int VK_DBE_SBCSCHAR = 0xf3;
        public const int VK_FINAL = 0x18;
        public const int VK_HANGEUL = 0x15;
        public const int VK_HANGUL = 0x15;
        public const int VK_HANJA = 0x19;
        public const int VK_ICO_00 = 0xE4;
        public const int VK_ICO_CLEAR = 0xE6;
        public const int VK_ICO_HELP = 0xE3;
        public const int VK_JUNJA = 0x17;
        public const int VK_KANA = 0x15;
        public const int VK_KANJI = 0x19;
        public const int VK_LAUNCH_APP1 = 0xB6;
        public const int VK_LAUNCH_APP2 = 0xB7;
        public const int VK_LAUNCH_MAIL = 0xB4;
        public const int VK_LAUNCH_MEDIA_SELECT = 0xB5;
        public const int VK_LWIN = 0x5B;
        public const int VK_MEDIA_NEXT_TRACK = 0xB0;
        public const int VK_MEDIA_PLAY_PAUSE = 0xB3;
        public const int VK_MEDIA_PREV_TRACK = 0xB1;
        public const int VK_MEDIA_STOP = 0xB2;
        public const int VK_MODECHANGE = 0x1F;
        public const int VK_NONCONVERT = 0x1D;
        public const int VK_OEM_1 = 0xBA;
        public const int VK_OEM_102 = 0xE2;
        public const int VK_OEM_2 = 0xBF;
        public const int VK_OEM_3 = 0xC0;
        public const int VK_OEM_4 = 0xDB;
        public const int VK_OEM_5 = 0xDC;
        public const int VK_OEM_6 = 0xDD;
        public const int VK_OEM_7 = 0xDE;
        public const int VK_OEM_8 = 0xDF;
        public const int VK_OEM_ATTN = 0xF0;
        public const int VK_OEM_AUTO = 0xF3;
        public const int VK_OEM_AX = 0xE1;
        public const int VK_OEM_BACKTAB = 0xF5;
        public const int VK_OEM_COMMA = 0xBC;
        public const int VK_OEM_COPY = 0xF2;
        public const int VK_OEM_CUSEL = 0xEF;
        public const int VK_OEM_ENLW = 0xF4;
        public const int VK_OEM_FINISH = 0xF1;
        public const int VK_OEM_FJ_JISHO = 0x92;
        public const int VK_OEM_FJ_LOYA = 0x95;
        public const int VK_OEM_FJ_MASSHOU = 0x93;
        public const int VK_OEM_FJ_ROYA = 0x96;
        public const int VK_OEM_FJ_TOUROKU = 0x94;
        public const int VK_OEM_JUMP = 0xEA;
        public const int VK_OEM_MINUS = 0xBD;
        public const int VK_OEM_NEC_EQUAL = 0x92;
        public const int VK_OEM_PA1 = 0xEB;
        public const int VK_OEM_PA2 = 0xEC;
        public const int VK_OEM_PA3 = 0xED;
        public const int VK_OEM_PERIOD = 0xBE;
        public const int VK_OEM_PLUS = 0xBB;
        public const int VK_OEM_RESET = 0xE9;
        public const int VK_OEM_WSCTRL = 0xEE;
        public const int VK_PACKET = 0xE7;
        public const int VK_PROCESSKEY = 0xE5;
        public const int VK_RWIN = 0x5C;
        public const int VK_SLEEP = 0x5F;
        public const int VK_VOLUME_DOWN = 0xAE;
        public const int VK_VOLUME_MUTE = 0xAD;
        public const int VK_VOLUME_UP = 0xAF;
        public const int VK_XBUTTON1 = 0x5;
        public const int VK_XBUTTON2 = 0x6;
        public const int VM_FLAGS = 0x140;
        public const int VM_NORMAL = 4;
        public const int VM_OUTLINE = 2;
        public const int WM_ADSPROP_NOTIFY_APPLY = (WM_USER + 1104);
        public const int WM_ADSPROP_NOTIFY_CHANGE = (WM_USER + 1103);
        public const int WM_ADSPROP_NOTIFY_ERROR = (WM_USER + 1110);
        public const int WM_ADSPROP_NOTIFY_EXIT = (WM_USER + 1107);
        public const int WM_ADSPROP_NOTIFY_FOREGROUND = (WM_USER + 1106);
        public const int WM_ADSPROP_NOTIFY_PAGEHWND = (WM_USER + 1102);
        public const int WM_ADSPROP_NOTIFY_PAGEINIT = (WM_USER + 1101);
        public const int WM_ADSPROP_NOTIFY_SETFOCUS = (WM_USER + 1105);
        public const int WM_ADSPROP_NOTIFY_SHOW_ERROR_DIALOG = (WM_USER + 1111);
        public const int WM_AFXFIRST = 0x360;
        public const int WM_AFXLAST = 0x37F;
        public const int WM_APP = 0x8000;
        public const int WM_APPCOMMAND = 0x319;
        public const int WM_CAP_ABORT = (WM_CAP_START + 69);
        public const int WM_CAP_DLG_VIDEOCOMPRESSION = (WM_CAP_START + 46);
        public const int WM_CAP_DLG_VIDEODISPLAY = (WM_CAP_START + 43);
        public const int WM_CAP_DLG_VIDEOFORMAT = (WM_CAP_START + 41);
        public const int WM_CAP_DLG_VIDEOSOURCE = (WM_CAP_START + 42);
        public const int WM_CAP_DRIVER_CONNECT = (WM_CAP_START + 10);
        public const int WM_CAP_DRIVER_DISCONNECT = (WM_CAP_START + 11);
        public const int WM_CAP_DRIVER_GET_CAPS = (WM_CAP_START + 14);
        public const int WM_CAP_DRIVER_GET_NAMEA = (WM_CAP_START + 12);
        public const int WM_CAP_DRIVER_GET_NAMEW = (WM_CAP_UNICODE_START + 12);
        public const int WM_CAP_DRIVER_GET_VERSIONA = (WM_CAP_START + 13);
        public const int WM_CAP_DRIVER_GET_VERSIONW = (WM_CAP_UNICODE_START + 13);
        public const int WM_CAP_EDIT_COPY = (WM_CAP_START + 30);
        public const int WM_CAP_END = WM_CAP_UNICODE_END;
        public const int WM_CAP_FILE_ALLOCATE = (WM_CAP_START + 22);
        public const int WM_CAP_FILE_GET_CAPTURE_FILEA = (WM_CAP_START + 21);
        public const int WM_CAP_FILE_GET_CAPTURE_FILEW = (WM_CAP_UNICODE_START + 21);
        public const int WM_CAP_FILE_SAVEASA = (WM_CAP_START + 23);
        public const int WM_CAP_FILE_SAVEASW = (WM_CAP_UNICODE_START + 23);
        public const int WM_CAP_FILE_SAVEDIBA = (WM_CAP_START + 25);
        public const int WM_CAP_FILE_SAVEDIBW = (WM_CAP_UNICODE_START + 25);
        public const int WM_CAP_FILE_SET_CAPTURE_FILEA = (WM_CAP_START + 20);
        public const int WM_CAP_FILE_SET_CAPTURE_FILEW = (WM_CAP_UNICODE_START + 20);
        public const int WM_CAP_FILE_SET_INFOCHUNK = (WM_CAP_START + 24);
        public const int WM_CAP_GET_AUDIOFORMAT = (WM_CAP_START + 36);
        public const int WM_CAP_GET_CAPSTREAMPTR = (WM_CAP_START + 1);
        public const int WM_CAP_GET_MCI_DEVICEA = (WM_CAP_START + 67);
        public const int WM_CAP_GET_MCI_DEVICEW = (WM_CAP_UNICODE_START + 67);
        public const int WM_CAP_GET_SEQUENCE_SETUP = (WM_CAP_START + 65);
        public const int WM_CAP_GET_STATUS = (WM_CAP_START + 54);
        public const int WM_CAP_GET_USER_DATA = (WM_CAP_START + 8);
        public const int WM_CAP_GET_VIDEOFORMAT = (WM_CAP_START + 44);
        public const int WM_CAP_GRAB_FRAME = (WM_CAP_START + 60);
        public const int WM_CAP_GRAB_FRAME_NOSTOP = (WM_CAP_START + 61);
        public const int WM_CAP_PAL_AUTOCREATE = (WM_CAP_START + 83);
        public const int WM_CAP_PAL_MANUALCREATE = (WM_CAP_START + 84);
        public const int WM_CAP_PAL_OPENA = (WM_CAP_START + 80);
        public const int WM_CAP_PAL_OPENW = (WM_CAP_UNICODE_START + 80);
        public const int WM_CAP_PAL_PASTE = (WM_CAP_START + 82);
        public const int WM_CAP_PAL_SAVEA = (WM_CAP_START + 81);
        public const int WM_CAP_PAL_SAVEW = (WM_CAP_UNICODE_START + 81);
        public const int WM_CAP_SEQUENCE = (WM_CAP_START + 62);
        public const int WM_CAP_SEQUENCE_NOFILE = (WM_CAP_START + 63);
        public const int WM_CAP_SET_AUDIOFORMAT = (WM_CAP_START + 35);
        public const int WM_CAP_SET_CALLBACK_CAPCONTROL = (WM_CAP_START + 85);
        public const int WM_CAP_SET_CALLBACK_ERRORA = (WM_CAP_START + 2);
        public const int WM_CAP_SET_CALLBACK_ERRORW = (WM_CAP_UNICODE_START + 2);
        public const int WM_CAP_SET_CALLBACK_FRAME = (WM_CAP_START + 5);
        public const int WM_CAP_SET_CALLBACK_STATUSA = (WM_CAP_START + 3);
        public const int WM_CAP_SET_CALLBACK_STATUSW = (WM_CAP_UNICODE_START + 3);
        public const int WM_CAP_SET_CALLBACK_VIDEOSTREAM = (WM_CAP_START + 6);
        public const int WM_CAP_SET_CALLBACK_WAVESTREAM = (WM_CAP_START + 7);
        public const int WM_CAP_SET_CALLBACK_YIELD = (WM_CAP_START + 4);
        public const int WM_CAP_SET_MCI_DEVICEA = (WM_CAP_START + 66);
        public const int WM_CAP_SET_MCI_DEVICEW = (WM_CAP_UNICODE_START + 66);
        public const int WM_CAP_SET_OVERLAY = (WM_CAP_START + 51);
        public const int WM_CAP_SET_PREVIEW = (WM_CAP_START + 50);
        public const int WM_CAP_SET_PREVIEWRATE = (WM_CAP_START + 52);
        public const int WM_CAP_SET_SCALE = (WM_CAP_START + 53);
        public const int WM_CAP_SET_SCROLL = (WM_CAP_START + 55);
        public const int WM_CAP_SET_SEQUENCE_SETUP = (WM_CAP_START + 64);
        public const int WM_CAP_SET_USER_DATA = (WM_CAP_START + 9);
        public const int WM_CAP_SET_VIDEOFORMAT = (WM_CAP_START + 45);
        public const int WM_CAP_SINGLE_FRAME = (WM_CAP_START + 72);
        public const int WM_CAP_SINGLE_FRAME_CLOSE = (WM_CAP_START + 71);
        public const int WM_CAP_SINGLE_FRAME_OPEN = (WM_CAP_START + 70);
        public const int WM_CAP_START = WM_USER;
        public const int WM_CAP_STOP = (WM_CAP_START + 68);
        public const int WM_CAP_UNICODE_END = WM_CAP_PAL_SAVEW;
        public const int WM_CAP_UNICODE_START = WM_USER + 100;
        public const int WM_CAPTURECHANGED = 0x215;
        public const int WM_CHANGEUISTATE = 0x127;
        public const int WM_CHOOSEFONT_GETLOGFONT = (WM_USER + 1);
        public const int WM_CHOOSEFONT_SETFLAGS = (WM_USER + 102);
        public const int WM_CHOOSEFONT_SETLOGFONT = (WM_USER + 101);
        public const int WM_CONTEXTMENU = 0x7B;
        public const int WM_CONVERTREQUEST = 0x10A;
        public const int WM_CONVERTREQUESTEX = 0x108;
        public const int WM_CONVERTRESULT = 0x10B;
        public const int WM_CPL_LAUNCH = (WM_USER + 1000);
        public const int WM_CPL_LAUNCHED = (WM_USER + 1001);
        public const int WM_CTLCOLOR = 0x19;
        public const int WM_DEVICECHANGE = 0x219;
        public const int WM_DISPLAYCHANGE = 0x7E;
        public const int WM_ENTERSIZEMOVE = 0x231;
        public const int WM_EXITSIZEMOVE = 0x232;
        public const int WM_FORWARDMSG = 0x37F;
        public const int WM_GETICON = 0x7F;
        public const int WM_GETOBJECT = 0x3D;
        public const int WM_HANDHELDFIRST = 0x358;
        public const int WM_HANDHELDLAST = 0x35F;
        public const int WM_HELP = 0x53;
        public const int WM_IME_CHAR = 0x286;
        public const int WM_IME_COMPOSITION = 0x10F;
        public const int WM_IME_COMPOSITIONFULL = 0x284;
        public const int WM_IME_CONTROL = 0x283;
        public const int WM_IME_ENDCOMPOSITION = 0x10E;
        public const int WM_IME_KEYDOWN = 0x290;
        public const int WM_IME_KEYLAST = 0x10F;
        public const int WM_IME_KEYUP = 0x291;
        public const int WM_IME_NOTIFY = 0x282;
        public const int WM_IME_REPORT = 0x280;
        public const int WM_IME_REQUEST = 0x288;
        public const int WM_IME_SELECT = 0x285;
        public const int WM_IME_SETCONTEXT = 0x281;
        public const int WM_IME_STARTCOMPOSITION = 0x10D;
        public const int WM_IMEKEYDOWN = 0x290;
        public const int WM_IMEKEYUP = 0x291;
        public const int WM_INPUTLANGCHANGE = 0x51;
        public const int WM_INPUTLANGCHANGEREQUEST = 0x50;
        public const int WM_INTERIM = 0x10C;
        public const int WM_MENUCOMMAND = 0x126;
        public const int WM_MENUDRAG = 0x123;
        public const int WM_MENUGETOBJECT = 0x124;
        public const int WM_MENURBUTTONUP = 0x122;
        public const int WM_MOUSEHOVER = 0x2A1;
        public const int WM_MOUSELEAVE = 0x2A3;
        public const int WM_MOUSEWHEEL = 0x20A;
        public const int WM_MOVING = 0x216;
        public const int WM_NCMOUSEHOVER = 0x2A0;
        public const int WM_NCMOUSELEAVE = 0x2A2;
        public const int WM_NCXBUTTONDBLCLK = 0xAD;
        public const int WM_NCXBUTTONDOWN = 0xAB;
        public const int WM_NCXBUTTONUP = 0xAC;
        public const int WM_NEXTMENU = 0x213;
        public const int WM_NOTIFY = 0x4E;
        public const int WM_NOTIFYFORMAT = 0x55;
        public const int WM_POWERBROADCAST = 0x218;
        public const int WM_PRINT = 0x317;
        public const int WM_PRINTCLIENT = 0x318;
        public const int WM_PSD_ENVSTAMPRECT = (WM_USER + 5);
        public const int WM_PSD_FULLPAGERECT = (WM_USER + 1);
        public const int WM_PSD_GREEKTEXTRECT = (WM_USER + 4);
        public const int WM_PSD_MARGINRECT = (WM_USER + 3);
        public const int WM_PSD_MINMARGINRECT = (WM_USER + 2);
        public const int WM_PSD_PAGESETUPDLG = (WM_USER);
        public const int WM_PSD_YAFULLPAGERECT = (WM_USER + 6);
        public const int WM_QUERYUISTATE = 0x129;
        public const int WM_RASDIALEVENT = 0xCCCD;
        public const int WM_SETICON = 0x80;
        public const int WM_SETTINGCHANGE = WM_WININICHANGE;
        public const int WM_SIZING = 0x214;
        public const int WM_STYLECHANGED = 0x7D;
        public const int WM_STYLECHANGING = 0x7C;
        public const int WM_SYNCPAINT = 0x88;
        public const int WM_TCARD = 0x52;
        public const int WM_THEMECHANGED = 0x031A;
        public const int WM_UNINITMENUPOPUP = 0x125;
        public const int WM_UPDATEUISTATE = 0x128;
        public const int WM_USERCHANGED = 0x54;
        public const int WM_WNT_CONVERTREQUESTEX = 0x109;
        public const int WM_XBUTTONDBLCLK = 0x20D;
        public const int WM_XBUTTONDOWN = 0x20B;
        public const int WM_XBUTTONUP = 0x20C;
        public const int GRADIENT_FILL_RECT_H = 0;
        public const int GRADIENT_FILL_RECT_V = 1;
        public const int GRADIENT_FILL_TRIANGLE = 2;
        public const int GRADIENT_FILL_OP_FLAG = 0xFF;
        public const int AC_SRC_OVER = 0;
        public const int AC_SRC_ALPHA = 1;
        public const int HICF_OTHER = 0x00000000;
        public const int HICF_MOUSE = 0x00000001;          // Triggered by mouse
        public const int HICF_ARROWKEYS = 0x00000002;          // Triggered by arrow keys
        public const int HICF_ACCELERATOR = 0x00000004;          // Triggered by accelerator
        public const int HICF_DUPACCEL = 0x00000008;          // This accelerator is not unique
        public const int HICF_ENTERING = 0x00000010;          // idOld is invalid
        public const int HICF_LEAVING = 0x00000020;          // idNew is invalid
        public const int HICF_RESELECT = 0x00000040;          // hot item reselected
        public const int HICF_LMOUSE = 0x00000080;          // left mouse button selected
        public const int HICF_TOGGLEDROPDOWN = 0x00000100;          // Toggle button's dropdown state
        public const int TBMF_PAD = 1;
        public const int TBMF_BARPAD = 2;
        public const int TBMF_BUTTONSPACING = 4;
        public const int UISF_HIDEFOCUS = 0x1;
        public const int UISF_HIDEACCEL = 0x2;
        public const int UISF_ACTIVE = 0x4;
        public const int UIS_SET = 0x1;
        public const int UIS_CLEAR = 0x2;
        public const int UIS_INITIALIZE = 0x3;
        public const int TB_ADDBITMAP = (WM_USER + 19);
        public const int TB_ADDBUTTONS = (WM_USER + 20);
        public const int TB_ADDBUTTONSA = (WM_USER + 20);
        public const int TB_ADDBUTTONSW = (WM_USER + 68);
        public const int TB_ADDSTRINGA = (WM_USER + 28);
        public const int TB_ADDSTRINGW = (WM_USER + 77);
        public const int TB_AUTOSIZE = (WM_USER + 33);
        public const int TB_BOTTOM = 7;
        public const int TB_BUTTONCOUNT = (WM_USER + 24);
        public const int TB_BUTTONSTRUCTSIZE = (WM_USER + 30);
        public const int TB_CHANGEBITMAP = (WM_USER + 43);
        public const int TB_CHECKBUTTON = (WM_USER + 2);
        public const int TB_COMMANDTOINDEX = (WM_USER + 25);
        public const int TB_CUSTOMIZE = (WM_USER + 27);
        public const int TB_DELETEBUTTON = (WM_USER + 22);
        public const int TB_ENABLEBUTTON = (WM_USER + 1);
        public const int TB_ENDTRACK = 8;
        public const int TB_GETANCHORHIGHLIGHT = (WM_USER + 74);
        public const int TB_GETBITMAP = (WM_USER + 44);
        public const int TB_GETBITMAPFLAGS = (WM_USER + 41);
        public const int TB_GETBUTTON = (WM_USER + 23);
        public const int TB_GETBUTTONINFOA = (WM_USER + 65);
        public const int TB_GETBUTTONINFOW = (WM_USER + 63);
        public const int TB_GETBUTTONSIZE = (WM_USER + 58);
        public const int TB_GETBUTTONTEXTA = (WM_USER + 45);
        public const int TB_GETBUTTONTEXTW = (WM_USER + 75);
        public const int TB_GETCOLORSCHEME = CCM_GETCOLORSCHEME;
        public const int TB_GETDISABLEDIMAGELIST = (WM_USER + 55);
        public const int TB_GETEXTENDEDSTYLE = (WM_USER + 85);
        public const int TB_GETHOTIMAGELIST = (WM_USER + 53);
        public const int TB_GETHOTITEM = (WM_USER + 71);
        public const int TB_GETIMAGELIST = (WM_USER + 49);
        public const int TB_GETINSERTMARK = (WM_USER + 79);
        public const int TB_GETINSERTMARKCOLOR = (WM_USER + 89);
        public const int TB_GETITEMRECT = (WM_USER + 29);
        public const int TB_GETMAXSIZE = (WM_USER + 83);
        public const int TB_GETMETRICS = (WM_USER + 101);
        public const int TB_GETOBJECT = (WM_USER + 62);
        public const int TB_GETPADDING = (WM_USER + 86);
        public const int TB_GETRECT = (WM_USER + 51);
        public const int TB_GETROWS = (WM_USER + 40);
        public const int TB_GETSTATE = (WM_USER + 18);
        public const int TB_GETSTRINGA = (WM_USER + 92);
        public const int TB_GETSTRINGW = (WM_USER + 91);
        public const int TB_GETSTYLE = (WM_USER + 57);
        public const int TB_GETTEXTROWS = (WM_USER + 61);
        public const int TB_GETTOOLTIPS = (WM_USER + 35);
        public const int TB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
        public const int TB_HIDEBUTTON = (WM_USER + 4);
        public const int TB_HITTEST = (WM_USER + 69);
        public const int TB_INDETERMINATE = (WM_USER + 5);
        public const int TB_INSERTBUTTON = (WM_USER + 21);
        public const int TB_INSERTBUTTONA = (WM_USER + 21);
        public const int TB_INSERTBUTTONW = (WM_USER + 67);
        public const int TB_INSERTMARKHITTEST = (WM_USER + 81);
        public const int TB_ISBUTTONCHECKED = (WM_USER + 10);
        public const int TB_ISBUTTONENABLED = (WM_USER + 9);
        public const int TB_ISBUTTONHIDDEN = (WM_USER + 12);
        public const int TB_ISBUTTONHIGHLIGHTED = (WM_USER + 14);
        public const int TB_ISBUTTONINDETERMINATE = (WM_USER + 13);
        public const int TB_ISBUTTONPRESSED = (WM_USER + 11);
        public const int TB_LINEDOWN = 1;
        public const int TB_LINEUP = 0;
        public const int TB_LOADIMAGES = (WM_USER + 50);
        public const int TB_MAPACCELERATORA = (WM_USER + 78);
        public const int TB_MAPACCELERATORW = (WM_USER + 90);
        public const int TB_MARKBUTTON = (WM_USER + 6);
        public const int TB_MOVEBUTTON = (WM_USER + 82);
        public const int TB_PAGEDOWN = 3;
        public const int TB_PAGEUP = 2;
        public const int TB_PRESSBUTTON = (WM_USER + 3);
        public const int TB_REPLACEBITMAP = (WM_USER + 46);
        public const int TB_SAVERESTOREA = (WM_USER + 26);
        public const int TB_SAVERESTOREW = (WM_USER + 76);
        public const int TB_SETANCHORHIGHLIGHT = (WM_USER + 73);
        public const int TB_SETBITMAPSIZE = (WM_USER + 32);
        public const int TB_SETBUTTONINFOA = (WM_USER + 66);
        public const int TB_SETBUTTONINFOW = (WM_USER + 64);
        public const int TB_SETBUTTONSIZE = (WM_USER + 31);
        public const int TB_SETBUTTONWIDTH = (WM_USER + 59);
        public const int TB_SETCMDID = (WM_USER + 42);
        public const int TB_SETCOLORSCHEME = CCM_SETCOLORSCHEME;
        public const int TB_SETDISABLEDIMAGELIST = (WM_USER + 54);
        public const int TB_SETDRAWTEXTFLAGS = (WM_USER + 70);
        public const int TB_SETEXTENDEDSTYLE = (WM_USER + 84);
        public const int TB_SETHOTIMAGELIST = (WM_USER + 52);
        public const int TB_SETHOTITEM = (WM_USER + 72);
        public const int TB_SETIMAGELIST = (WM_USER + 48);
        public const int TB_SETINDENT = (WM_USER + 47);
        public const int TB_SETINSERTMARK = (WM_USER + 80);
        public const int TB_SETINSERTMARKCOLOR = (WM_USER + 88);
        public const int TB_SETMAXTEXTROWS = (WM_USER + 60);
        public const int TB_SETMETRICS = (WM_USER + 102);
        public const int TB_SETPADDING = (WM_USER + 87);
        public const int TB_SETPARENT = (WM_USER + 37);
        public const int TB_SETROWS = (WM_USER + 39);
        public const int TB_SETSTATE = (WM_USER + 17);
        public const int TB_SETSTYLE = (WM_USER + 56);
        public const int TB_SETTOOLTIPS = (WM_USER + 36);
        public const int TB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
        public const int TB_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
        public const int TB_THUMBPOSITION = 4;
        public const int TB_THUMBTRACK = 5;
        public const int TB_TOP = 6;
        public const int RB_BEGINDRAG = (WM_USER + 24);
        public const int RB_DELETEBAND = (WM_USER + 2);
        public const int RB_DRAGMOVE = (WM_USER + 26);
        public const int RB_ENDDRAG = (WM_USER + 25);
        public const int RB_GETBANDBORDERS = (WM_USER + 34);
        public const int RB_GETBANDCOUNT = (WM_USER + 12);
        public const int RB_GETBANDINFO = (WM_USER + 5);
        public const int RB_GETBANDINFOA = (WM_USER + 29);
        public const int RB_GETBANDINFOW = (WM_USER + 28);
        public const int RB_GETBANDMARGINS = (WM_USER + 40);
        public const int RB_GETBARHEIGHT = (WM_USER + 27);
        public const int RB_GETBARINFO = (WM_USER + 3);
        public const int RB_GETBKCOLOR = (WM_USER + 20);
        public const int RB_GETCOLORSCHEME = CCM_GETCOLORSCHEME;
        public const int RB_GETDROPTARGET = (CCM_GETDROPTARGET);
        public const int RB_GETPALETTE = (WM_USER + 38);
        public const int RB_GETRECT = (WM_USER + 9);
        public const int RB_GETROWCOUNT = (WM_USER + 13);
        public const int RB_GETROWHEIGHT = (WM_USER + 14);
        public const int RB_GETTEXTCOLOR = (WM_USER + 22);
        public const int RB_GETTOOLTIPS = (WM_USER + 17);
        public const int RB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
        public const int RB_HITTEST = (WM_USER + 8);
        public const int RB_IDTOINDEX = (WM_USER + 16);
        public const int RB_INSERTBANDA = (WM_USER + 1);
        public const int RB_INSERTBANDW = (WM_USER + 10);
        public const int RB_MAXIMIZEBAND = (WM_USER + 31);
        public const int RB_MINIMIZEBAND = (WM_USER + 30);
        public const int RB_MOVEBAND = (WM_USER + 39);
        public const int RB_PUSHCHEVRON = (WM_USER + 43);
        public const int RB_SETBANDINFOA = (WM_USER + 6);
        public const int RB_SETBANDINFOW = (WM_USER + 11);
        public const int RB_SETBARINFO = (WM_USER + 4);
        public const int RB_SETBKCOLOR = (WM_USER + 19);
        public const int RB_SETCOLORSCHEME = CCM_SETCOLORSCHEME;
        public const int RB_SETPALETTE = (WM_USER + 37);
        public const int RB_SETPARENT = (WM_USER + 7);
        public const int RB_SETTEXTCOLOR = (WM_USER + 21);
        public const int RB_SETTOOLTIPS = (WM_USER + 18);
        public const int RB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
        public const int RB_SETWINDOWTHEME = CCM_SETWINDOWTHEME;
        public const int RB_SHOWBAND = (WM_USER + 35);
        public const int RB_SIZETORECT = (WM_USER + 23);
        public const int SB_CONST_ALPHA = 0x1;
        public const int SB_GETBORDERS = (WM_USER + 7);
        public const int SB_GETICON = (WM_USER + 20);
        public const int SB_GETPARTS = (WM_USER + 6);
        public const int SB_GETRECT = (WM_USER + 10);
        public const int SB_GETTEXTA = (WM_USER + 2);
        public const int SB_GETTEXTLENGTHA = (WM_USER + 3);
        public const int SB_GETTEXTLENGTHW = (WM_USER + 12);
        public const int SB_GETTEXTW = (WM_USER + 13);
        public const int SB_GETTIPTEXTA = (WM_USER + 18);
        public const int SB_GETTIPTEXTW = (WM_USER + 19);
        public const int SB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT;
        public const int SB_GRAD_RECT = 0x10;
        public const int SB_GRAD_TRI = 0x20;
        public const int SB_ISSIMPLE = (WM_USER + 14);
        public const int SB_NONE = 0x0;
        public const int SB_PIXEL_ALPHA = 0x2;
        public const int SB_PREMULT_ALPHA = 0x4;
        public const int SB_SETBKCOLOR = CCM_SETBKCOLOR;
        public const int SB_SETICON = (WM_USER + 15);
        public const int SB_SETMINHEIGHT = (WM_USER + 8);
        public const int SB_SETPARTS = (WM_USER + 4);
        public const int SB_SETTEXTA = (WM_USER + 1);
        public const int SB_SETTEXTW = (WM_USER + 11);
        public const int SB_SETTIPTEXTA = (WM_USER + 16);
        public const int SB_SETTIPTEXTW = (WM_USER + 17);
        public const int SB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT;
        public const int SB_SIMPLE = (WM_USER + 9);
        public const int SB_SIMPLEID = 0xff;
        public const int DL_BEGINDRAG = (WM_USER + 133);
        public const int DL_DRAGGING = (WM_USER + 134);
        public const int DL_DROPPED = (WM_USER + 135);
        public const int AW_HOR_POSITIVE = 0x00000001;
        public const int AW_HOR_NEGATIVE = 0x00000002;
        public const int AW_VER_POSITIVE = 0x00000004;
        public const int AW_VER_NEGATIVE = 0x00000008;
        public const int AW_CENTER = 0x00000010;
        public const int AW_HIDE = 0x00010000;
        public const int AW_ACTIVATE = 0x00020000;
        public const int AW_SLIDE = 0x00040000;
        public const int AW_BLEND = 0x00080000;
        public const int SWP_NOSENDCHANGING = 0x0400;  /* Don't send WM_WINDOWPOSCHANGING */
        public const int SWP_DEFERERASE = 0x2000;
        public const int SWP_ASYNCWINDOWPOS = 0x4000;
        public const int SWP_REDRAWONLY = (SWP_NOSIZE | SWP_NOMOVE |
            SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOCOPYBITS |
            SWP_NOOWNERZORDER | SWP_NOSENDCHANGING);
        public const int HTOBJECT = 19;
        public const int HTCLOSE = 20;
        public const int HTHELP = 21;
        public const int GWLP_WNDPROC = (-4);
        public const int GWLP_HINSTANCE = (-6);
        public const int GWLP_HWNDPARENT = (-8);
        public const int GWLP_USERDATA = (-21);
        public const int GWLP_ID = (-12);
        public const int VREFRESH = 116;
        public const int DESKTOPVERTRES = 117;
        public const int DESKTOPHORZRES = 118;
        public const int BLTALIGNMENT = 119;
        public const int SHADEBLENDCAPS = 120;
        public const int COLORMGMTCAPS = 121;

        public const int CM_NONE = 0x00000000;
        public const int CM_DEVICE_ICM = 0x00000001;
        public const int CM_GAMMA_RAMP = 0x00000002;
        public const int CM_CMYK_COLOR = 0x00000004;
        public const int SYSPAL_NOSTATIC256 = 3;
        public const int BEGIN = 0;
        public const int CURRENT = 1;
        public const int END = 2;
        public const int CLR_NONE = unchecked((int)0xFFFFFFFF);
        public const int CLR_DEFAULT = unchecked((int)0xFF000000);
        public const int CCS_TOP = 0x00000001;
        public const int CCS_NOMOVEY = 0x00000002;
        public const int CCS_BOTTOM = 0x00000003;
        public const int CCS_NORESIZE = 0x00000004;
        public const int CCS_NOPARENTALIGN = 0x00000008;
        public const int CCS_ADJUSTABLE = 0x00000020;
        public const int CCS_NODIVIDER = 0x00000040;
        public const int CCS_VERT = 0x00000080;
        public const int CCS_LEFT = (CCS_VERT | CCS_TOP);
        public const int CCS_RIGHT = (CCS_VERT | CCS_BOTTOM);
        public const int CCS_NOMOVEX = (CCS_VERT | CCS_NOMOVEY);
        public const int RBS_TOOLTIPS = 0x0100;
        public const int RBS_VARHEIGHT = 0x0200;
        public const int RBS_BANDBORDERS = 0x0400;
        public const int RBS_FIXEDORDER = 0x0800;
        public const int RBS_REGISTERDROP = 0x1000;
        public const int RBS_AUTOSIZE = 0x2000;
        public const int RBS_VERTICALGRIPPER = 0x4000; // this always has the vertical gripper (default for horizontal mode)
        public const int RBS_DBLCLKTOGGLE = 0x8000;
        public const int BTNS_BUTTON = 0x0000;
        public const int BTNS_SEP = 0x0001;
        public const int BTNS_CHECK = 0x0002;
        public const int BTNS_GROUP = 0x0004;
        public const int BTNS_CHECKGROUP = (BTNS_GROUP | BTNS_CHECK);
        public const int BTNS_DROPDOWN = 0x0008;
        public const int BTNS_AUTOSIZE = 0x0010;
        public const int BTNS_NOPREFIX = 0x0020;
        public const int BTNS_SHOWTEXT = 0x0040;
        public const int BTNS_WHOLEDROPDOWN = 0x0080;
        public const int TBSTYLE_TOOLTIPS = 0x0100;
        public const int TBSTYLE_WRAPABLE = 0x0200;
        public const int TBSTYLE_ALTDRAG = 0x0400;
        public const int TBSTYLE_FLAT = 0x0800;
        public const int TBSTYLE_LIST = 0x1000;
        public const int TBSTYLE_CUSTOMERASE = 0x2000;
        public const int TBSTYLE_REGISTERDROP = 0x4000;
        public const int TBSTYLE_TRANSPARENT = 0x8000;
        public const int TBSTYLE_EX_DRAWDDARROWS = 0x00000001;
        public const int TBSTYLE_EX_MIXEDBUTTONS = 0x00000008;
        public const int TBSTYLE_EX_HIDECLIPPEDBUTTONS = 0x00000010;
        public const int TBSTYLE_EX_DOUBLEBUFFER = 0x00000080;
        public static readonly IntPtr HWND_TOP = IntPtr.Zero;
        public static readonly IntPtr HWND_BOTTOM = new IntPtr(1);
        public static readonly IntPtr HWND_TOPMOST = new IntPtr(-1);
        public static readonly IntPtr HWND_NOTOPMOST = new IntPtr(-2);
        public const int I_IMAGECALLBACK = -1;
        public const int I_IMAGENONE = -2;
        public const int CDRF_DODEFAULT = 0x0;
        public const int CDRF_SKIPDEFAULT = 0x4;
        public const int CDRF_NOTIFYITEMDRAW = 0x20;
        public const int CDRF_NOTIFYPOSTPAINT = 0x10;
        public const int CDDS_PREPAINT = 0x1;
        public const int CDDS_ITEM = 0x10000;
        public const int CDDS_ITEMPREPAINT = CDDS_ITEM | CDDS_PREPAINT;
        public const int CDDS_SUBITEM = 0x00020000;
        public const int CDDS_POSTPAINT = 0x00000002;
        public const int CDIS_HOT = 0x40;
        public const int CDIS_SELECTED = 0x1;
        public const int CDIS_GRAYED = 0x2;
        public const int CDIS_DISABLED = 0x4;
        public const int CDIS_CHECKED = 0x8;
        public const int WM_REFLECT = WM_USER + 0x1c00;
        public const int LVN_FIRST = (0 - 100);       // listview
        public const int LVN_LAST = (0 - 199);
        public const int HDN_FIRST = (0 - 300);       // header
        public const int HDN_LAST = (0 - 399);
        public const int TVN_FIRST = (0 - 400);       // treeview
        public const int TVN_LAST = (0 - 499);
        public const int TTN_FIRST = (0 - 520);       // tooltips
        public const int TTN_LAST = (0 - 549);
        public const int TCN_FIRST = (0 - 550);       // tab control
        public const int TCN_LAST = (0 - 580);
        public const int CDN_FIRST = (0 - 601);       // common dialog (new)
        public const int CDN_LAST = (0 - 699);
        public const int TBN_FIRST = (0 - 700);       // toolbar
        public const int TBN_LAST = (0 - 720);
        public const int UDN_FIRST = (0 - 721);        // updown
        public const int UDN_LAST = (0 - 740);
        public const int MCN_FIRST = (0 - 750);       // monthcal
        public const int MCN_LAST = (0 - 759);
        public const int DTN_FIRST = (0 - 760);       // datetimepick
        public const int DTN_LAST = (0 - 799);
        public const int CBEN_FIRST = (0 - 800);       // combo box ex
        public const int CBEN_LAST = (0 - 830);
        public const int RBN_FIRST = (0 - 831);       // rebar
        public const int RBN_LAST = (0 - 859);
        public const int IPN_FIRST = (0 - 860);       // internet address
        public const int IPN_LAST = (0 - 879);       // internet address
        public const int SBN_FIRST = (0 - 880);       // status bar
        public const int SBN_LAST = (0 - 899);
        public const int PGN_FIRST = (0 - 900);       // Pager Control
        public const int PGN_LAST = (0 - 950);
        public const int WMN_FIRST = (0 - 1000);
        public const int WMN_LAST = (0 - 1200);
        public const int BCN_FIRST = (0 - 1250);
        public const int BCN_LAST = (0 - 1350);
        public const int ODT_HEADER = 100;
        public const int ODT_TAB = 101;
        public const int ODT_LISTVIEW = 102;
        public const int TTN_NEEDTEXTA = ((0 - 520) - 0);
        public const int TTN_NEEDTEXTW = ((0 - 520) - 10);
        public const int RBHT_NOWHERE = 0x0001;
        public const int RBHT_CAPTION = 0x0002;
        public const int RBHT_CLIENT = 0x0003;
        public const int RBHT_GRABBER = 0x0004;
        public const int RBHT_CHEVRON = 0x0008;
        public const int TBN_GETBUTTONINFOA = (TBN_FIRST - 0);
        public const int TBN_BEGINDRAG = (TBN_FIRST - 1);
        public const int TBN_ENDDRAG = (TBN_FIRST - 2);
        public const int TBN_BEGINADJUST = (TBN_FIRST - 3);
        public const int TBN_ENDADJUST = (TBN_FIRST - 4);
        public const int TBN_RESET = (TBN_FIRST - 5);
        public const int TBN_QUERYINSERT = (TBN_FIRST - 6);
        public const int TBN_QUERYDELETE = (TBN_FIRST - 7);
        public const int TBN_TOOLBARCHANGE = (TBN_FIRST - 8);
        public const int TBN_CUSTHELP = (TBN_FIRST - 9);
        public const int TBN_DROPDOWN = (TBN_FIRST - 10);
        public const int TBN_GETOBJECT = (TBN_FIRST - 12);
        public const int TBN_HOTITEMCHANGE = (TBN_FIRST - 13);
        public const int TBN_DRAGOUT = (TBN_FIRST - 14); // this is sent when the user clicks down on a button then drags off the button
        public const int TBN_DELETINGBUTTON = (TBN_FIRST - 15); // uses TBNOTIFY
        public const int TBN_GETDISPINFOA = (TBN_FIRST - 16); // This is sent when the  toolbar needs  some display information
        public const int TBN_GETDISPINFOW = (TBN_FIRST - 17); // This is sent when the  toolbar needs  some display information
        public const int TBN_GETINFOTIPA = (TBN_FIRST - 18);
        public const int TBN_GETINFOTIPW = (TBN_FIRST - 19);
        public const int TBN_GETBUTTONINFOW = (TBN_FIRST - 20);
        public const int TBN_RESTORE = (TBN_FIRST - 21);
        public const int TBN_SAVE = (TBN_FIRST - 22);
        public const int TBN_INITCUSTOMIZE = (TBN_FIRST - 23);
        public const int TBIF_IMAGE = 0x1;
        public const int TBIF_TEXT = 0x2;
        public const int TBIF_STATE = 0x4;
        public const int TBIF_STYLE = 0x8;
        public const int TBIF_COMMAND = 0x20;
        public const int TBIF_SIZE = 0x40;
        public const int ICC_LISTVIEW_CLASSES = 0x00000001; // listview; header
        public const int ICC_TREEVIEW_CLASSES = 0x00000002; // treeview; tooltips
        public const int ICC_BAR_CLASSES = 0x00000004; // toolbar; statusbar; trackbar; tooltips
        public const int ICC_TAB_CLASSES = 0x00000008; // tab; tooltips
        public const int ICC_UPDOWN_CLASS = 0x00000010; // updown
        public const int ICC_PROGRESS_CLASS = 0x00000020; // progress
        public const int ICC_HOTKEY_CLASS = 0x00000040; // hotkey
        public const int ICC_ANIMATE_CLASS = 0x00000080; // animate
        public const int ICC_WIN95_CLASSES = 0x000000FF;
        public const int ICC_DATE_CLASSES = 0x00000100; // month picker; date picker; time picker; updown
        public const int ICC_USEREX_CLASSES = 0x00000200; // comboex
        public const int ICC_COOL_CLASSES = 0x00000400; // rebar (coolbar) control
        public const int ICC_INTERNET_CLASSES = 0x00000800;
        public const int ICC_PAGESCROLLER_CLASS = 0x00001000; // page scroller
        public const int ICC_NATIVEFNTCTL_CLASS = 0x00002000; // native font control
        public const int ICC_STANDARD_CLASSES = 0x00004000;
        public const int ICC_LINK_CLASS = 0x00008000;
        public const int TBSTATE_CHECKED = 0x01;
        public const int TBSTATE_ENABLED = 0x04;
        public const int TBSTATE_HIDDEN = 0x08;
        public const int RBN_HEIGHTCHANGE = (RBN_FIRST - 0);
        public const int RBN_GETOBJECT = (RBN_FIRST - 1);
        public const int RBN_LAYOUTCHANGED = (RBN_FIRST - 2);
        public const int RBN_AUTOSIZE = (RBN_FIRST - 3);
        public const int RBN_BEGINDRAG = (RBN_FIRST - 4);
        public const int RBN_ENDDRAG = (RBN_FIRST - 5);
        public const int RBN_DELETINGBAND = (RBN_FIRST - 6);     // Uses NMREBAR
        public const int RBN_DELETEDBAND = (RBN_FIRST - 7);     // Uses NMREBAR
        public const int RBN_CHILDSIZE = (RBN_FIRST - 8);
        public const int RBN_CHEVRONPUSHED = (RBN_FIRST - 10);
        public const int RBN_MINMAX = (RBN_FIRST - 21);
        public const int RBN_AUTOBREAK = (RBN_FIRST - 22);
        public const int RBBS_BREAK = 0x1; // break to new line
        public const int RBBS_FIXEDSIZE = 0x00000002; // band can't be sized
        public const int RBBS_CHILDEDGE = 0x4; // edge around top & bottom of child window
        public const int RBBS_FIXEDBMP = 0x20; // band can't be resized
        public const int RBBS_GRIPPERALWAYS = 0x80; // always show the gripper
        public const int RBBS_USECHEVRON = 0x200; // display drop-down button for this band if it's sized smaller than ideal width
        public const int RBBS_HIDDEN = 0x00000008; // don't show
        public const int RBBS_NOVERT = 0x00000010; // don't show when vertical
        public const int RBBS_VARIABLEHEIGHT = 0x00000040; // allow autosizing of this child vertically
        public const int RBBS_NOGRIPPER = 0x00000100; // never show the gripper
        public const int RBBS_HIDETITLE = 0x00000400; // keep band title hidden
        public const int RBBS_TOPALIGN = 0x00000800; // keep band title hidden
        public const int RBSTR_CHANGERECT = 0x0001;   // flags for RB_SIZETORECT
        public const int ILS_SATURATE = 0x4;
        public const int SPI_GETACTIVEWINDOWTRACKING = 0x1000;
        public const int SPI_GETACTIVEWNDTRKTIMEOUT = 0x2002;
        public const int SPI_GETACTIVEWNDTRKZORDER = 0x100C;
        public const int SPI_GETBLOCKSENDINPUTRESETS = 0x1026;
        public const int SPI_GETCARETWIDTH = 0x2006;
        public const int SPI_GETCOMBOBOXANIMATION = 0x1004;
        public const int SPI_GETCURSORSHADOW = 0x101A;
        public const int SPI_GETDESKWALLPAPER = 115;
        public const int SPI_GETDROPSHADOW = 0x1024;
        public const int SPI_GETFLATMENU = 0x1022;
        public const int SPI_GETFOCUSBORDERHEIGHT = 0x2010;
        public const int SPI_GETFOCUSBORDERWIDTH = 0x200E;
        public const int SPI_GETFONTSMOOTHINGCONTRAST = 0x200C;
        public const int SPI_GETFONTSMOOTHINGORIENTATION = 0x2012;
        public const int SPI_GETFONTSMOOTHINGTYPE = 0x200A;
        public const int SPI_GETFOREGROUNDFLASHCOUNT = 0x2004;
        public const int SPI_GETFOREGROUNDLOCKTIMEOUT = 0x2000;
        public const int SPI_GETGRADIENTCAPTIONS = 0x1008;
        public const int SPI_GETHOTTRACKING = 0x100E;
        public const int SPI_GETKEYBOARDCUES = 0x100A;
        public const int SPI_GETLISTBOXSMOOTHSCROLLING = 0x1006;
        public const int SPI_GETMENUANIMATION = 0x1002;
        public const int SPI_GETMENUFADE = 0x1012;
        public const int SPI_GETMENUSHOWDELAY = 106;
        public const int SPI_GETMENUUNDERLINES = SPI_GETKEYBOARDCUES;
        public const int SPI_GETMOUSECLICKLOCK = 0x101E;
        public const int SPI_GETMOUSECLICKLOCKTIME = 0x2008;
        public const int SPI_GETMOUSEHOVERHEIGHT = 100;
        public const int SPI_GETMOUSEHOVERTIME = 102;
        public const int SPI_GETMOUSEHOVERWIDTH = 98;
        public const int SPI_GETMOUSESONAR = 0x101C;
        public const int SPI_GETMOUSESPEED = 112;
        public const int SPI_GETMOUSEVANISH = 0x1020;
        public const int SPI_GETSCREENSAVERRUNNING = 114;
        public const int SPI_GETSELECTIONFADE = 0x1014;
        public const int SPI_GETSHOWIMEUI = 110;
        public const int SPI_GETSNAPTODEFBUTTON = 95;
        public const int SPI_GETTOOLTIPANIMATION = 0x1016;
        public const int SPI_GETTOOLTIPFADE = 0x1018;
        public const int SPI_GETUIEFFECTS = 0x103E;
        public const int SPI_GETWHEELSCROLLLINES = 104;
        public const int SPI_SETACTIVEWINDOWTRACKING = 0x1001;
        public const int SPI_SETACTIVEWNDTRKTIMEOUT = 0x2003;
        public const int SPI_SETACTIVEWNDTRKZORDER = 0x100D;
        public const int SPI_SETBLOCKSENDINPUTRESETS = 0x1027;
        public const int SPI_SETCARETWIDTH = 0x2007;
        public const int SPI_SETCOMBOBOXANIMATION = 0x1005;
        public const int SPI_SETCURSORSHADOW = 0x101B;
        public const int SPI_SETDROPSHADOW = 0x1025;
        public const int SPI_SETFLATMENU = 0x1023;
        public const int SPI_SETFOCUSBORDERHEIGHT = 0x2011;
        public const int SPI_SETFOCUSBORDERWIDTH = 0x200F;
        public const int SPI_SETFONTSMOOTHINGCONTRAST = 0x200D;
        public const int SPI_SETFONTSMOOTHINGORIENTATION = 0x2013;
        public const int SPI_SETFONTSMOOTHINGTYPE = 0x200B;
        public const int SPI_SETFOREGROUNDFLASHCOUNT = 0x2005;
        public const int SPI_SETFOREGROUNDLOCKTIMEOUT = 0x2001;
        public const int SPI_SETGRADIENTCAPTIONS = 0x1009;
        public const int SPI_SETHOTTRACKING = 0x100F;
        public const int SPI_SETKEYBOARDCUES = 0x100B;
        public const int SPI_SETLISTBOXSMOOTHSCROLLING = 0x1007;
        public const int SPI_SETMENUANIMATION = 0x1003;
        public const int SPI_SETMENUFADE = 0x1013;
        public const int SPI_SETMENUSHOWDELAY = 107;
        public const int SPI_SETMENUUNDERLINES = SPI_SETKEYBOARDCUES;
        public const int SPI_SETMOUSECLICKLOCK = 0x101F;
        public const int SPI_SETMOUSECLICKLOCKTIME = 0x2009;
        public const int SPI_SETMOUSEHOVERHEIGHT = 101;
        public const int SPI_SETMOUSEHOVERTIME = 103;
        public const int SPI_SETMOUSEHOVERWIDTH = 99;
        public const int SPI_SETMOUSESONAR = 0x101D;
        public const int SPI_SETMOUSESPEED = 113;
        public const int SPI_SETMOUSEVANISH = 0x1021;
        public const int SPI_SETSCREENSAVERRUNNING = 97;
        public const int SPI_SETSELECTIONFADE = 0x1015;
        public const int SPI_SETSHOWIMEUI = 111;
        public const int SPI_SETSNAPTODEFBUTTON = 96;
        public const int SPI_SETTOOLTIPANIMATION = 0x1017;
        public const int SPI_SETTOOLTIPFADE = 0x1019;
        public const int SPI_SETUIEFFECTS = 0x103F;
        public const int SPI_SETWHEELSCROLLLINES = 105;
        public const int ILS_ALPHA = 0x10;
        public const int ILS_GLOW = 0x1;
        public const int ILS_GLOWFLARE = 0x2;
        public const int ILS_NORMAL = 0x0;
        public const int ILS_PULSE = 0x8;
        public const int ILS_SHADOW = 0x4;
        public const int ILD_BLEND = ILD_BLEND50;
        public const int ILD_BLEND25 = 0x2;
        public const int ILD_BLEND50 = 0x4;
        public const int ILD_FOCUS = ILD_BLEND25;
        public const int ILD_IMAGE = 0x20;
        public const int ILD_MASK = 0x10;
        public const int ILD_NORMAL = 0x0;
        public const int ILD_OVERLAYMASK = 0xF00;
        public const int ILD_ROP = 0x40;
        public const int ILD_SELECTED = ILD_BLEND50;
        public const int ILD_TRANSPARENT = 0x1;
        public const int WH_CALLWNDPROCRET = 12;
        public const int WH_KEYBOARD_LL = 13;
        public const int WH_MAXHOOK = WH_MAX;
        public const int WH_MINHOOK = WH_MIN;
        public const int WH_MOUSE_LL = 14;
        public const int MSGF_COMMCTRL_BEGINDRAG = 0x4200;
        public const int MSGF_COMMCTRL_DRAGSELECT = 0x4202;
        public const int MSGF_COMMCTRL_SIZEHEADER = 0x4201;
        public const int MSGF_COMMCTRL_TOOLBARCUST = 0x4203;
        public const int TTF_ABSOLUTE = 0x80;
        public const int TTF_CENTERTIP = 0x2;
        public const int TTF_DI_SETITEM = 0x8000;
        public const int TTF_IDISHWND = 0x1;
        public const int TTF_RTLREADING = 0x4;
        public const int TTF_SUBCLASS = 0x10;
        public const int TTF_TRACK = 0x20;
        public const int TTF_TRANSPARENT = 0x100;
        public const int MNC_CLOSE = 1;
        public const int MNC_EXECUTE = 2;
        public const int MNC_IGNORE = 0;
        public const int MNC_SELECT = 3;
        public const int FILE_FLAG_OPEN_NO_RECALL = 0x100000;
        public const int FILE_FLAG_OPEN_REPARSE_POINT = 0x200000;
        public const int FILE_SHARE_DELETE = 0x4;
        public const int DT_ACCEPT_DBCS = (0x20);
        public const int DT_AGENT = (0x3);
        public const int DT_DISTLIST = (0x1);
        public const int DT_EDITABLE = (0x2);
        public const int DT_FOLDER = (0x1000000);
        public const int DT_FOLDER_LINK = (0x2000000);
        public const int DT_FOLDER_SPECIAL = (0x4000000);
        public const int DT_FORUM = (0x2);
        public const int DT_GLOBAL = (0x20000);
        public const int DT_HIDEPREFIX = 0x100000;
        public const int DT_LOCAL = (0x30000);
        public const int DT_MAILUSER = (0x0);
        public const int DT_MODIFIABLE = (0x10000);
        public const int DT_MULTILINE = (0x1);
        public const int DT_NOFULLWIDTHCHARBREAK = 0x80000;
        public const int DT_NOT_SPECIFIC = (0x50000);
        public const int DT_ORGANIZATION = (0x4);
        public const int DT_PASSWORD_EDIT = (0x10);
        public const int DT_PREFIXONLY = 0x200000;
        public const int DT_PRIVATE_DISTLIST = (0x5);
        public const int DT_REMOTE_MAILUSER = (0x6);
        public const int DT_REQUIRED = (0x4);
        public const int DT_SET_IMMEDIATE = (0x8);
        public const int DT_SET_SELECTION = (0x40);
        public const int DT_WAN = (0x40000);

        public const int RESOURCE_RECENT = 0x00000004;
        public const int RESOURCE_CONTEXT = 0x00000005;

        public const int RESOURCETYPE_RESERVED = 0x00000008;

        public const int RESOURCEUSAGE_NOLOCALDEVICE = 0x00000004;
        public const int RESOURCEUSAGE_SIBLING = 0x00000008;
        public const int RESOURCEUSAGE_ATTACHED = 0x00000010;

        public const int RESOURCEDISPLAYTYPE_NETWORK = 0x6;
        public const int RESOURCEDISPLAYTYPE_ROOT = 0x7;
        public const int RESOURCEDISPLAYTYPE_ADMINSHARE = 0x8;
        public const int RESOURCEDISPLAYTYPE_DIRECTORY = 0x9;
        #endregion

        #region Structures
        [StructLayout(LayoutKind.Sequential)]
        public struct TOOLINFO
        {
            public int size;
            public int flag;
            public IntPtr parent;
            public int id;
            public RECT rect;
            public int nullvalue;
            [MarshalAs(UnmanagedType.LPTStr)]
            public string text;
            public int param;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct HDITEM
        {
            public Int32 mask;
            public Int32 cxy;
            [MarshalAs(UnmanagedType.LPTStr)]
            public String pszText;
            public IntPtr hbm;
            public Int32 cchTextMax;
            public Int32 fmt;
            public Int32 lParam;
            public Int32 iImage;
            public Int32 iOrder;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PCCERT_CONTEXT
        {
            public int dwCertEncodingType;
            public IntPtr pbCertEncoded;
            public int cbCertEncoded;
            public IntPtr pCertInfo;
            public IntPtr hCertStore;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct GUID
        {
            public int Data1;
            public short Data2;
            public short Data3;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = UnmanagedType.U1)]
            public byte[] Data4;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct SYSTEMTIME
        {
            public short wYear;
            public short wMonth;
            public short wDayOfWeek;
            public short wDay;
            public short wHour;
            public short wMinute;
            public short wSecond;
            public short wMilliseconds;
        }

        [StructLayout(LayoutKind.Sequential)]
        public struct SIZE
        {
            public int cx;
            public int cy;
        }

        [System.Runtime.InteropServices.StructLayout(LayoutKind.Sequential)]
        public struct NOTIFYICONDATA
        {
            public int cbSize;
            public IntPtr hwnd;
            public int uID;
            public int uFlags;
            public int uCallbackMessage;
            public IntPtr hicon;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
            public string szTip;
            public int dwState;
            public int dwStateMask;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
            public string szInfo;
            public int uTimeoutOrVersion;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
            public string szInfoTitle;
            public int dwInfoFlags;
        }

        public static int MAKELPARAM(int a, int b)
        {
            return (int)((a & 0xffff) | ((b & 0xffff) << 16));
        }
        public static long MAKELONGLONG(int a, int b)
        {
            return (long)((long)(a & 0xffffffff) | ((long)(b & 0xffffffff) << 32));
        }
        public static int MAKELONG(int a, int b)
        {
            return (int)((a & 0xffff) | ((b & 0xffff) << 16));
        }
        public static int MAKEWORD(int a, int b)
        {
            return (int)((a & 0xff) | ((b & 0xff) << 8));
        }

        public static byte LOBYTE(short w)
        {
            return ((byte)(w & 0xff));
        }
        public static byte HIBYTE(short w)
        {
            return ((byte)(w >> 8));
        }

        public static short LOWORD(int dw)
        {
            return ((short)(dw & 0xffff));
        }
        public static short HIWORD(int dw)
        {
            return ((short)(dw >> 16));
        }

        public static int LODWORD(long qw)
        {
            return ((int)(qw & 0xffffffff));
        }
        public static int HIDWORD(long qw)
        {
            return ((int)(qw >> 32));
        }

        [StructLayout(LayoutKind.Sequential)]
        public struct XFORM
        {
            public double eM11;
            public double eM12;
            public double eM21;
            public double eM22;
            public double eDx;
            public double eDy;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct BITMAP
        {
            public int bmType;
            public int bmWidth;
            public int bmHeight;
            public int bmWidthBytes;
            public short bmPlanes;
            public short bmBitsPixel;
            public int bmBits;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct RGBTRIPLE
        {
            public byte rgbtBlue;
            public byte rgbtGreen;
            public byte rgbtRed;
        }
        [StructLayout(LayoutKind.Explicit)]
        public struct RGBQUAD
        {
            [FieldOffset(0)]
            public byte rgbBlue;
            [FieldOffset(1)]
            public byte rgbGreen;
            [FieldOffset(2)]
            public byte rgbRed;
            [FieldOffset(3)]
            public byte rgbReserved;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct BITMAPCOREHEADER
        {
            public int bcSize;
            public short bcWidth;
            public short bcHeight;
            public short bcPlanes;
            public short bcBitCount;
        }
        [StructLayout(LayoutKind.Explicit)]
        public struct BITMAPINFOHEADER
        {
            [FieldOffset(0)]
            public int biSize;
            [FieldOffset(4)]
            public int biWidth;
            [FieldOffset(8)]
            public int biHeight;
            [FieldOffset(12)]
            public short biPlanes;
            [FieldOffset(14)]
            public short biBitCount;
            [FieldOffset(16)]
            public int biCompression;
            [FieldOffset(20)]
            public int biSizeImage;
            [FieldOffset(24)]
            public int biXPelsPerMeter;
            [FieldOffset(28)]
            public int biYPelsPerMeter;
            [FieldOffset(32)]
            public int biClrUsed;
            [FieldOffset(36)]
            public int biClrImportant;
        }
        [StructLayout(LayoutKind.Explicit)]
        public class BITMAPINFO
        {
            [FieldOffset(0)]
            public Int32 biSize;
            [FieldOffset(4)]
            public Int32 biWidth;
            [FieldOffset(8)]
            public Int32 biHeight;
            [FieldOffset(12)]
            public Int16 biPlanes;
            [FieldOffset(14)]
            public Int16 biBitCount;
            [FieldOffset(16)]
            public Int32 biCompression;
            [FieldOffset(20)]
            public Int32 biSizeImage;
            [FieldOffset(24)]
            public Int32 biXPelsPerMeter;
            [FieldOffset(28)]
            public Int32 biYPelsPerMeter;
            [FieldOffset(32)]
            public Int32 biClrUsed;
            [FieldOffset(36)]
            public Int32 biClrImportant;
            [FieldOffset(40)]
            public Int32 colors;
        };
        [StructLayout(LayoutKind.Explicit)]
        public struct BITMAPINFO2
        {
            [FieldOffset(0)]
            [MarshalAs(UnmanagedType.Struct)]
            public BITMAPINFOHEADER bmiHeader;
            [FieldOffset(40)]
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
            public RGBQUAD[] bmiColors;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct BITMAPCOREINFO
        {
            public BITMAPCOREHEADER bmciHeader;
            public RGBTRIPLE bmciColors;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct BITMAPFILEHEADER
        {
            public short bfType;
            public int bfSize;
            public short bfReserved1;
            public short bfReserved2;
            public int bfOffBits;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct HANDLETABLE
        {
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
            public int objectHandle;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct METARECORD
        {
            public int rdSize;
            public short rdFunction;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
            public short rdParm;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct METAFILEPICT
        {
            public int mm;
            public int xExt;
            public int yExt;
            public IntPtr hMF;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct METAHEADER
        {
            public short mtType;
            public short mtHeaderSize;
            public short mtVersion;
            public int mtSize;
            public short mtNoObjects;
            public int mtMaxRecord;
            public short mtNoParameters;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct ENHMETARECORD
        {
            public int iType;
            public int nSize;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
            public int dParm;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct ENHMETAHEADER
        {
            public int iType;
            public int nSize;
            public RECT rclBounds;
            public RECT rclFrame;
            public int dSignature;
            public int nVersion;
            public int nBytes;
            public int nRecords;
            public short nHandles;
            public short sReserved;
            public int nDescription;
            public int offDescription;
            public int nPalEntries;
            public SIZE szlDevice;
            public SIZE szlMillimeters;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct TEXTMETRIC
        {
            public int tmHeight;
            public int tmAscent;
            public int tmDescent;
            public int tmInternalLeading;
            public int tmExternalLeading;
            public int tmAveCharWidth;
            public int tmMaxCharWidth;
            public int tmWeight;
            public int tmOverhang;
            public int tmDigitizedAspectX;
            public int tmDigitizedAspectY;
            public byte tmFirstChar;
            public byte tmLastChar;
            public byte tmDefaultChar;
            public byte tmBreakChar;
            public byte tmItalic;
            public byte tmUnderlined;
            public byte tmStruckOut;
            public byte tmPitchAndFamily;
            public byte tmCharSet;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct NEWTEXTMETRIC
        {
            public int tmHeight;
            public int tmAscent;
            public int tmDescent;
            public int tmInternalLeading;
            public int tmExternalLeading;
            public int tmAveCharWidth;
            public int tmMaxCharWidth;
            public int tmWeight;
            public int tmOverhang;
            public int tmDigitizedAspectX;
            public int tmDigitizedAspectY;
            public byte tmFirstChar;
            public byte tmLastChar;
            public byte tmDefaultChar;
            public byte tmBreakChar;
            public byte tmItalic;
            public byte tmUnderlined;
            public byte tmStruckOut;
            public byte tmPitchAndFamily;
            public byte tmCharSet;
            public int ntmFlags;
            public int ntmSizeEM;
            public int ntmCellHeight;
            public int ntmAveWidth;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PELARRAY
        {
            public int paXCount;
            public int paYCount;
            public int paXExt;
            public int paYExt;
            public short paRGBs;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct LOGBRUSH
        {
            public int lbStyle;
            public int lbColor;
            public int lbHatch;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct LOGPEN
        {
            public int lopnStyle;
            public POINT lopnWidth;
            public int lopnColor;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct EXTLOGPEN
        {
            public int elpPenStyle;
            public int elpWidth;
            public int elpBrushStyle;
            public int elpColor;
            public int elpHatch;
            public int elpNumEntries;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
            public int elpStyleEntry;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PALETTEENTRY
        {
            public byte peRed;
            public byte peGreen;
            public byte peBlue;
            public byte peFlags;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct LOGPALETTE
        {
            public short palVersion;
            public short palNumEntries;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
            public PALETTEENTRY palPalEntry;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct LOGFONT
        {
            public int lfHeight;
            public int lfWidth;
            public int lfEscapement;
            public int lfOrientation;
            public int lfWeight;
            public byte lfItalic;
            public byte lfUnderline;
            public byte lfStrikeOut;
            public byte lfCharSet;
            public byte lfOutPrecision;
            public byte lfClipPrecision;
            public byte lfQuality;
            public byte lfPitchAndFamily;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = LF_FACESIZE)]
            public byte[] lfFaceName;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct NONCLIENTMETRICS
        {
            public int cbSize;
            public int iBorderWidth;
            public int iScrollWidth;
            public int iScrollHeight;
            public int iCaptionWidth;
            public int iCaptionHeight;
            public LOGFONT lfCaptionFont;
            public int iSMCaptionWidth;
            public int iSMCaptionHeight;
            public LOGFONT lfSMCaptionFont;
            public int iMenuWidth;
            public int iMenuHeight;
            public LOGFONT lfMenuFont;
            public LOGFONT lfStatusFont;
            public LOGFONT lfMessageFont;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct ENUMLOGFONT
        {
            public LOGFONT elfLogFont;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = LF_FULLFACESIZE)]
            public byte[] elfFullName;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = LF_FACESIZE)]
            public byte[] elfStyle;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PANOSE
        {
            public int ulculture;
            public byte bFamilyType;
            public byte bSerifStyle;
            public byte bWeight;
            public byte bProportion;
            public byte bContrast;
            public byte bStrokeVariation;
            public byte bArmStyle;
            public byte bLetterform;
            public byte bMidline;
            public byte bXHeight;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct EXTLOGFONT
        {
            public LOGFONT elfLogFont;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = LF_FULLFACESIZE)]
            public byte[] elfFullName;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = LF_FACESIZE)]
            public byte[] elfStyle;
            public int elfVersion;
            public int elfStyleSize;
            public int elfMatch;
            public int elfReserved;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = ELF_VENDOR_SIZE)]
            public byte[] elfVendorId;
            public int elfCulture;
            public PANOSE elfPanose;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct RGNDATAHEADER
        {
            public int dwSize;
            public int iType;
            public int nCount;
            public int nRgnSize;
            public RECT rcBound;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct RGNDATA
        {
            public RGNDATAHEADER rdh;
            public byte Buffer;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct ABC
        {
            public int abcA;
            public int abcB;
            public int abcC;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct ABCFLOAT
        {
            public double abcfA;
            public double abcfB;
            public double abcfC;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct OUTLINETEXTMETRIC
        {
            public int otmSize;
            public TEXTMETRIC otmTextMetrics;
            public byte otmFiller;
            public PANOSE otmPanoseNumber;
            public int otmfsSelection;
            public int otmfsType;
            public int otmsCharSlopeRise;
            public int otmsCharSlopeRun;
            public int otmItalicAngle;
            public int otmEMSquare;
            public int otmAscent;
            public int otmDescent;
            public int otmLineGap;
            public int otmsCapEmHeight;
            public int otmsXHeight;
            public RECT otmrcFontBox;
            public int otmMacAscent;
            public int otmMacDescent;
            public int otmMacLineGap;
            public int otmusMinimumPPEM;
            public POINT otmptSubscriptSize;
            public POINT otmptSubscriptOffset;
            public POINT otmptSuperscriptSize;
            public POINT otmptSuperscriptOffset;
            public int otmsStrikeoutSize;
            public int otmsStrikeoutPosition;
            public int otmsUnderscorePosition;
            public int otmsUnderscoreSize;
            public string otmpFamilyName;
            public string otmpFaceName;
            public string otmpStyleName;
            public string otmpFullName;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct POLYTEXT
        {
            public int x;
            public int y;
            public int n;
            public string lpStr;
            public int uiFlags;
            public RECT rcl;
            public int pdx;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct FIXED
        {
            public short fract;
            public short Value;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct MAT2
        {
            public FIXED eM11;
            public FIXED eM12;
            public FIXED eM21;
            public FIXED eM22;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct GLYPHMETRICS
        {
            public int gmBlackBoxX;
            public int gmBlackBoxY;
            public POINT gmptGlyphOrigin;
            public short gmCellIncX;
            public short gmCellIncY;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct POINTFX
        {
            public FIXED x;
            public FIXED y;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct TTPOLYCURVE
        {
            public short wType;
            public short cpfx;
            public POINTFX apfx;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct TTPOLYGONHEADER
        {
            public int cb;
            public int dwType;
            public POINTFX pfxStart;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct RASTERIZER_STATUS
        {
            public short nSize;
            public short wFlags;
            public short nLanguageID;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct COLORADJUSTMENT
        {
            public short caSize;
            public short caFlags;
            public short caIlluminantIndex;
            public short caRedGamma;
            public short caGreenGamma;
            public short caBlueGamma;
            public short caReferenceBlack;
            public short caReferenceWhite;
            public short caContrast;
            public short caBrightness;
            public short caColorfulness;
            public short caRedGreenTint;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct DOCINFO
        {
            public int cbSize;
            public string lpszDocName;
            public string lpszOutput;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct KERNINGPAIR
        {
            public short wFirst;
            public short wSecond;
            public int iKernAmount;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct BITMAPV4HEADER
        {
            public int bV4Size;
            public int bV4Width;
            public int bV4Height;
            public short bV4Planes;
            public short bV4BitCount;
            public int bV4V4Compression;
            public int bV4SizeImage;
            public int bV4XPelsPerMeter;
            public int bV4YPelsPerMeter;
            public int bV4ClrUsed;
            public int bV4ClrImportant;
            public int bV4RedMask;
            public int bV4GreenMask;
            public int bV4BlueMask;
            public int bV4AlphaMask;
            public int bV4CSType;
            public int bV4Endpoints;
            public int bV4GammaRed;
            public int bV4GammaGreen;
            public int bV4GammaBlue;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct FONTSIGNATURE
        {
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
            public int fsUsb;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
            public int fsCsb;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct CHARSETINFO
        {
            public int ciCharset;
            public int ciACP;
            public FONTSIGNATURE fs;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct LOCALESIGNATURE
        {
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
            public int lsUsb;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
            public int lsCsbDefault;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
            public int lsCsbSupported;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct NEWTEXTMETRICEX
        {
            public NEWTEXTMETRIC ntmTm;
            public FONTSIGNATURE ntmFontSig;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct ENUMLOGFONTEX
        {
            public LOGFONT elfLogFont;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = LF_FULLFACESIZE)]
            public byte[] elfFullName;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = LF_FACESIZE)]
            public byte[] elfStyle;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = LF_FACESIZE)]
            public byte[] elfScript;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct GCP_RESULTS
        {
            public int lStructSize;
            public string lpOutString;
            public int lpOrder;
            public int lpDX;
            public int lpCaretPos;
            public string lpClass;
            public string lpGlyphs;
            public int nGlyphs;
            public int nMaxFit;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct CIEXYZ
        {
            public int ciexyzX;
            public int ciexyzY;
            public int ciexyzZ;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct CIEXYZTRIPLE
        {
            public CIEXYZ ciexyzRed;
            public CIEXYZ ciexyzGreen;
            public CIEXYZ ciexyBlue;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct LOGCOLORSPACE
        {
            public int lcsSignature;
            public int lcsVersion;
            public int lcsSize;
            public int lcsCSType;
            public int lcsIntent;
            public CIEXYZTRIPLE lcsEndPoints;
            public int lcsGammaRed;
            public int lcsGammaGreen;
            public int lcsGammaBlue;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
            public string lcsFileName;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PIXELFORMATDESCRIPTOR
        {
            public short nSize;
            public short nVersion;
            public int dwFlags;
            public byte iPixelType;
            public byte cColorBits;
            public byte cRedBits;
            public byte cRedShift;
            public byte cGreenBits;
            public byte cGreenShift;
            public byte cBlueBits;
            public byte cBlueShift;
            public byte cAlphaBits;
            public byte cAlphaShift;
            public byte cAccumBits;
            public byte cAccumRedBits;
            public byte cAccumGreenBits;
            public byte cAccumBlueBits;
            public byte cAccumAlphaBits;
            public byte cDepthBits;
            public byte cStencilBits;
            public byte cAuxBuffers;
            public byte iLayerType;
            public byte bReserved;
            public int dwLayerMask;
            public int dwVisibleMask;
            public int dwDamageMask;
        }

        [StructLayout(LayoutKind.Sequential)]
        public struct TRIVERTEX
        {
            public int x;
            public int y;
            public short Red;
            public short Green;
            public short Blue;
            public short Alpha;
        };

        [StructLayout(LayoutKind.Sequential)]
        public struct GRADIENT_RECT
        {
            public int UpperLeft;
            public int LowerRight;
        };

        [StructLayout(LayoutKind.Sequential)]
        public struct BLENDFUNCTION
        {
            public byte BlendOp;
            public byte BlendFlags;
            public byte SourceConstantAlpha;
            public byte AlphaFormat;
        };


        [StructLayout(LayoutKind.Sequential)]
        public struct NMTBHOTITEM
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public NMHDR hdr;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int idOld;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int idNew;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int dwFlags;           // HICF_*
        };

        [StructLayout(LayoutKind.Sequential)]
        public struct NETRESOURCE
        {
            public int dwScope;
            public int dwType;
            public int dwDisplayType;
            public int dwUsage;
            public string lpLocalName;
            public string lpRemoteName;
            public string lpComment;
            public string lpProvider;
        }

        [StructLayout(LayoutKind.Sequential)]
        public struct MSIFILEHASHINFO
        {
            public int dwFileHashInfoSize;
            public int dwHash1;
            public int dwHash2;
            public int dwHash3;
            public int dwHash4;
        }

        [StructLayout(LayoutKind.Sequential)]
        public struct COMBOBOXINFO
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cbSize;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public RECT rcItem;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public RECT rcButton;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr stateButton;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hwndCombo;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hwndEdit;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hwndList;
        }


        [StructLayout(LayoutKind.Sequential)]
        public struct OVERLAPPED
        {
            public int Internal;
            public int InternalHigh;
            public int offset;
            public int OffsetHigh;
            public IntPtr hEvent;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct SECURITY_ATTRIBUTES
        {
            public int nLength;
            public int lpSecurityDescriptor;
            public int bInheritHandle;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PROCESS_INFORMATION
        {
            public IntPtr hProcess;
            public IntPtr hThread;
            public int dwProcessId;
            public int dwThreadId;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct COMMPROP
        {
            public short wPacketLength;
            public short wPacketVersion;
            public int dwServiceMask;
            public int dwReserved1;
            public int dwMaxTxQueue;
            public int dwMaxRxQueue;
            public int dwMaxBaud;
            public int dwProvSubType;
            public int dwProvCapabilities;
            public int dwSettableParams;
            public int dwSettableBaud;
            public short wSettableData;
            public short wSettableStopParity;
            public int dwCurrentTxQueue;
            public int dwCurrentRxQueue;
            public int dwProvSpec1;
            public int dwProvSpec2;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
            public short[] wcProvChar;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct COMSTAT
        {
            public int fBitFields;
            public int cbInQue;
            public int cbOutQue;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct DCB
        {
            public int DCBlength;
            public int BaudRate;
            public int fBitFields;
            public short wReserved;
            public short XonLim;
            public short XoffLim;
            public byte ByteSize;
            public byte Parity;
            public byte StopBits;
            public byte XonChar;
            public byte XoffChar;
            public byte ErrorChar;
            public byte EofChar;
            public byte EvtChar;
            public short wReserved1;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct COMMTIMEOUTS
        {
            public int ReadIntervalTimeout;
            public int ReadTotalTimeoutMultiplier;
            public int ReadTotalTimeoutConstant;
            public int WriteTotalTimeoutMultiplier;
            public int WriteTotalTimeoutConstant;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct SYSTEM_INFO
        {
            public int dwOemID;
            public int dwPageSize;
            public int lpMinimumApplicationAddress;
            public int lpMaximumApplicationAddress;
            public int dwActiveProcessorMask;
            public int dwNumberOrfProcessors;
            public int dwProcessorType;
            public int dwAllocationGranularity;
            public int dwReserved;
        }
        [StructLayout(LayoutKind.Sequential)]
        public class MEMORYSTATUS
        {
            public int dwLength = 32;
            public int dwMemoryLoad = 0;
            public int dwTotalPhys = 0;
            public int dwAvailPhys = 0;
            public int dwTotalPageFile = 0;
            public int dwAvailPageFile = 0;
            public int dwTotalVirtual = 0;
            public int dwAvailVirtual = 0;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct GENERIC_MAPPING
        {
            public int GenericRead;
            public int GenericWrite;
            public int GenericExecute;
            public int GenericAll;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct LUID
        {
            public int LowPart;
            public int HighPart;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct LUID_AND_ATTRIBUTES
        {
            public LUID pLuid;
            public int Attributes;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct ACL
        {
            public byte AclRevision;
            public byte Sbz1;
            public short AclSize;
            public short AceCount;
            public short Sbz2;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct ACE_HEADER
        {
            public byte AceType;
            public byte AceFlags;
            public int AceSize;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct ACCESS_ALLOWED_ACE
        {
            public ACE_HEADER Header;
            public int Mask;
            public int SidStart;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct ACCESS_DENIED_ACE
        {
            public ACE_HEADER Header;
            public int Mask;
            public int SidStart;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct SYSTEM_AUDIT_ACE
        {
            public ACE_HEADER Header;
            public int Mask;
            public int SidStart;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct SYSTEM_ALARM_ACE
        {
            public ACE_HEADER Header;
            public int Mask;
            public int SidStart;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct ACL_REVISION_INFORMATION
        {
            public int AclRevision;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct ACL_SIZE_INFORMATION
        {
            public int AceCount;
            public int AclBytesInUse;
            public int AclBytesFree;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct SECURITY_DESCRIPTOR
        {
            public byte Revision;
            public byte Sbz1;
            public int Control;
            public int Owner;
            public int Group;
            public ACL Sacl;
            public ACL Dacl;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PRIVILEGE_SET
        {
            public int PrivilegeCount;
            public int Control;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
            public LUID_AND_ATTRIBUTES[] Privilege;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct EXCEPTION_RECORD
        {
            public int ExceptionCode;
            public int ExceptionFlags;
            public int pExceptionRecord;
            public int ExceptionAddress;
            public int NumberParameters;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 15)]
            public int[] ExceptionInformation;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct EXCEPTION_DEBUG_INFO
        {
            public EXCEPTION_RECORD pExceptionRecord;
            public int dwFirstChance;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct CREATE_THREAD_DEBUG_INFO
        {
            public IntPtr hThread;
            public int lpThreadLocalBase;
            public int lpStartAddress;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct CREATE_PROCESS_DEBUG_INFO
        {
            public IntPtr hFile;
            public IntPtr hProcess;
            public IntPtr hThread;
            public int lpBaseOfImage;
            public int dwDebugInfoFileOffset;
            public int nDebugInfoSize;
            public int lpThreadLocalBase;
            public int lpStartAddress;
            public int lpImageName;
            public short fUnicode;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct EXIT_THREAD_DEBUG_INFO
        {
            public int dwExitCode;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct EXIT_PROCESS_DEBUG_INFO
        {
            public int dwExitCode;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct LOAD_DLL_DEBUG_INFO
        {
            public IntPtr hFile;
            public int lpBaseOfDll;
            public int dwDebugInfoFileOffset;
            public int nDebugInfoSize;
            public int lpImageName;
            public short fUnicode;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct UNLOAD_DLL_DEBUG_INFO
        {
            public int lpBaseOfDll;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct OUTPUT_DEBUG_STRING_INFO
        {
            public string lpDebugStringData;
            public short fUnicode;
            public short nDebugStringLength;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct RIP_INFO
        {
            public int dwError;
            public int dwType;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct OFSTRUCT
        {
            public byte cBytes;
            public byte fFixedDisk;
            public short nErrCode;
            public short Reserved1;
            public short Reserved2;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
            public byte[] szPathName;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct CRITICAL_SECTION
        {
            public int pDebugInfo;
            public int LockCount;
            public int RecursionCount;
            public int pOwningThread;
            public int pLockSemaphore;
            public int Reserved;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct BY_HANDLE_FILE_INFORMATION
        {
            public int dwFileAttributes;
            public Com.FILETIME ftCreationTime;
            public Com.FILETIME ftLastAccessTime;
            public Com.FILETIME ftLastWriteTime;
            public int dwVolumeSerialNumber;
            public int nFileSizeHigh;
            public int nFileSizeLow;
            public int nNumberOfLinks;
            public int nFileIndexHigh;
            public int nFileIndexLow;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct MEMORY_BASIC_INFORMATION
        {
            public int BaseAddress;
            public int AllocationBase;
            public int AllocationProtect;
            public int RegionSize;
            public int State;
            public int Protect;
            public int lType;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct EVENTLOGRECORD
        {
            public int Length;
            public int Reserved;
            public int RecordNumber;
            public int TimeGenerated;
            public int TimeWritten;
            public int EventID;
            public short EventType;
            public short NumStrings;
            public short EventCategory;
            public short ReservedFlags;
            public int ClosingRecordNumber;
            public int StringOffset;
            public int UserSidLength;
            public int UserSidOffset;
            public int DataLength;
            public int DataOffset;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct TOKEN_GROUPS
        {
            public int GroupCount;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
            public SID_AND_ATTRIBUTES[] Groups;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct TOKEN_PRIVILEGES
        {
            public int PrivilegeCount;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
            public LUID_AND_ATTRIBUTES[] Privileges;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct CONTEXT
        {
            public double FltF0;
            public double FltF1;
            public double FltF2;
            public double FltF3;
            public double FltF4;
            public double FltF5;
            public double FltF6;
            public double FltF7;
            public double FltF8;
            public double FltF9;
            public double FltF10;
            public double FltF11;
            public double FltF12;
            public double FltF13;
            public double FltF14;
            public double FltF15;
            public double FltF16;
            public double FltF17;
            public double FltF18;
            public double FltF19;
            public double FltF20;
            public double FltF21;
            public double FltF22;
            public double FltF23;
            public double FltF24;
            public double FltF25;
            public double FltF26;
            public double FltF27;
            public double FltF28;
            public double FltF29;
            public double FltF30;
            public double FltF31;
            public double IntV0;
            public double IntT0;
            public double IntT1;
            public double IntT2;
            public double IntT3;
            public double IntT4;
            public double IntT5;
            public double IntT6;
            public double IntT7;
            public double IntS0;
            public double IntS1;
            public double IntS2;
            public double IntS3;
            public double IntS4;
            public double IntS5;
            public double IntFp;
            public double IntA0;
            public double IntA1;
            public double IntA2;
            public double IntA3;
            public double IntA4;
            public double IntA5;
            public double IntT8;
            public double IntT9;
            public double IntT10;
            public double IntT11;
            public double IntRa;
            public double IntT12;
            public double IntAt;
            public double IntGp;
            public double IntSp;
            public double IntZero;
            public double Fpcr;
            public double SoftFpcr;
            public double Fir;
            public int Psr;
            public int ContextFlags;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
            public int[] Fill;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct EXCEPTION_POINTERS
        {
            public EXCEPTION_RECORD pExceptionRecord;
            public CONTEXT ContextRecord;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct LDT_BYTES
        {
            public byte BaseMid;
            public byte Flags1;
            public byte Flags2;
            public byte BaseHi;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct LDT_ENTRY
        {
            public short LimitLow;
            public short BaseLow;
            public int HighWord;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct TIME_ZONE_INFORMATION
        {
            public int Bias;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
            public short[] StandardName;
            public SYSTEMTIME StandardDate;
            public int StandardBias;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
            public short[] DaylightName;
            public SYSTEMTIME DaylightDate;
            public int DaylightBias;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct WIN32_STREAM_ID
        {
            public int dwStreamID;
            public int dwStreamAttributes;
            public int dwStreamSizeLow;
            public int dwStreamSizeHigh;
            public int dwStreamNameSize;
            public byte cStreamName;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct STARTUPINFO
        {
            public int cb;
            public string lpReserved;
            public string lpDesktop;
            public string lpTitle;
            public int dwX;
            public int dwY;
            public int dwXSize;
            public int dwYSize;
            public int dwXCountChars;
            public int dwYCountChars;
            public int dwFillAttribute;
            public int dwFlags;
            public short wShowWindow;
            public short cbReserved2;
            public int lpReserved2;
            public IntPtr hStdInput;
            public IntPtr hStdOutput;
            public IntPtr hStdError;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct CPINFO
        {
            public int MaxCharSize;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_DEFAULTCHAR)]
            public byte[] DefaultChar;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_LEADBYTES)]
            public byte[] LeadByte;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct NUMBERFMT
        {
            public int NumDigits;
            public int LeadingZero;
            public int Grouping;
            public string lpDecimalSep;
            public string lpThousandSep;
            public int NegativeOrder;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct CURRENCYFMT
        {
            public int NumDigits;
            public int LeadingZero;
            public int Grouping;
            public string lpDecimalSep;
            public string lpThousandSep;
            public int NegativeOrder;
            public int PositiveOrder;
            public string lpCurrencySymbol;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct COORD
        {
            public short x;
            public short y;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct SMALL_RECT
        {
            public short Left;
            public short Top;
            public short Right;
            public short Bottom;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct KEY_EVENT_RECORD
        {
            public int bKeyDown;
            public short wRepeatCount;
            public short wVirtualKeyCode;
            public short wVirtualScanCode;
            public byte uChar;
            public int dwControlKeyState;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct MOUSE_EVENT_RECORD
        {
            public COORD dwMousePosition;
            public int dwButtonState;
            public int dwControlKeyState;
            public int dwEventFlags;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct WINDOW_BUFFER_SIZE_RECORD
        {
            public COORD dwSize;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct MENU_EVENT_RECORD
        {
            public int dwCommandId;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct FOCUS_EVENT_RECORD
        {
            public int bSetFocus;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct CHAR_INFO
        {
            public short Char;
            public short Attributes;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct CONSOLE_SCREEN_BUFFER_INFO
        {
            public COORD dwSize;
            public COORD dwCursorPosition;
            public short wAttributes;
            public SMALL_RECT srWindow;
            public COORD dwMaximumWindowSize;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct CONSOLE_CURSOR_INFO
        {
            public int dwSize;
            public int bVisible;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct SID_IDENTIFIER_AUTHORITY
        {
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
            public byte[] Value;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct SID_AND_ATTRIBUTES
        {
            public int Sid;
            public int Attributes;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct WIN32_FIND_DATA
        {
            public int dwFileAttributes;
            public Com.FILETIME ftCreationTime;
            public Com.FILETIME ftLastAccessTime;
            public Com.FILETIME ftLastWriteTime;
            public int nFileSizeHigh;
            public int nFileSizeLow;
            public int dwReserved0;
            public int dwReserved1;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAX_PATH)]
            public string cFileName;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)]
            public string cAlternate;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct COMMCONFIG
        {
            public int dwSize;
            public short wVersion;
            public short wReserved;
            public DCB dcbx;
            public int dwProviderSubType;
            public int dwProviderOffset;
            public int dwProviderSize;
            public byte wcProviderData;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct SERVICE_STATUS
        {
            public int dwServiceType;
            public int dwCurrentState;
            public int dwControlsAccepted;
            public int dwWin32ExitCode;
            public int dwServiceSpecificExitCode;
            public int dwCheckPoint;
            public int dwWaitHint;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct ENUM_SERVICE_STATUS
        {
            public string lpServiceName;
            public string lpDisplayName;
            public SERVICE_STATUS ServiceStatus;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct QUERY_SERVICE_LOCK_STATUS
        {
            public int fIsLocked;
            public string lpLockOwner;
            public int dwLockDuration;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct QUERY_SERVICE_CONFIG
        {
            public int dwServiceType;
            public int dwStartType;
            public int dwErrorControl;
            public string lpBinaryPathName;
            public string lpLoadOrderGroup;
            public int dwTagId;
            public string lpDependencies;
            public string lpServiceStartName;
            public string lpDisplayName;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct SERVICE_TABLE_ENTRY
        {
            public string lpServiceName;
            public int lpServiceProc;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct LARGE_INTEGER
        {
            public int lowpart;
            public int highpart;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PERF_DATA_BLOCK
        {
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 4)]
            public string Signature;
            public int LittleEndian;
            public int Version;
            public int Revision;
            public int TotalByteLength;
            public int HeaderLength;
            public int NumObjectTypes;
            public int DefaultObject;
            public SYSTEMTIME SystemTime;
            public LARGE_INTEGER PerfTime;
            public LARGE_INTEGER PerfFreq;
            public LARGE_INTEGER PerTime100nSec;
            public int SystemNameLength;
            public int SystemNameOffset;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PERF_OBJECT_TYPE
        {
            public int TotalByteLength;
            public int DefinitionLength;
            public int HeaderLength;
            public int ObjectNameTitleIndex;
            public string ObjectNameTitle;
            public int ObjectHelpTitleIndex;
            public string ObjectHelpTitle;
            public int DetailLevel;
            public int NumCounters;
            public int DefaultCounter;
            public int NumInstances;
            public int CodePage;
            public LARGE_INTEGER PerfTime;
            public LARGE_INTEGER PerfFreq;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PERF_COUNTER_DEFINITION
        {
            public int ByteLength;
            public int CounterNameTitleIndex;
            public string CounterNameTitle;
            public int CounterHelpTitleIndex;
            public string CounterHelpTitle;
            public int DefaultScale;
            public int DetailLevel;
            public int CounterType;
            public int CounterSize;
            public int CounterOffset;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PERF_INSTANCE_DEFINITION
        {
            public int ByteLength;
            public int ParentObjectTitleIndex;
            public int ParentObjectInstance;
            public int UniqueID;
            public int NameOffset;
            public int NameLength;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PERF_COUNTER_BLOCK
        {
            public int ByteLength;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct OSVERSIONINFO
        {
            public int dwOSVersionInfoSize;
            public int dwMajorVersion;
            public int dwMinorVersion;
            public int dwBuildNumber;
            public int dwPlatformId;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
            public string szCSDVersion;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct SYSTEM_POWER_STATUS
        {
            public byte ACLineStatus;
            public byte BatteryFlag;
            public byte BatteryLifePercent;
            public byte Reserved1;
            public int BatteryLifeTime;
            public int BatteryFullLifeTime;
        }


        [StructLayout(LayoutKind.Explicit)]
        public class TBMETRICS
        {
            // <summary>
            // See your Windows API documentation.
            // </summary>
            [FieldOffset(0)]
            public int cbSize = 32;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            [FieldOffset(4)]
            public int dwMask = 0;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            [FieldOffset(8)]
            public int cxPad = 0;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            [FieldOffset(12)]
            public int cyPad = 0;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            [FieldOffset(16)]
            public int cxBarPad = 0;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            [FieldOffset(20)]
            public int cyBarPad = 0;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            [FieldOffset(24)]
            public int cxButtonSpacing = 0;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            [FieldOffset(28)]
            public int cyButtonSpacing = 0;
        };

        [StructLayout(LayoutKind.Sequential)]
        public struct NMREBARAUTOBREAK
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public NMHDR hdr;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int uBand;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int wID;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int uMsg;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int fStyleCurrent;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int fAutoBreak;
        }

        [StructLayout(LayoutKind.Sequential)]
        public struct NMREBAR
        {
            public NMHDR hdr;
            public int dwMask;
            public int uBand;
            public int fStyle;
            public int wID;
            public int lParam;
        }

        public delegate int BrowseCallBackProc(IntPtr hwnd, int msg, IntPtr lp, IntPtr wp);

        [System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)]
        public struct BROWSEINFO
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hWndOwner;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr pIDLRoot;
            // <summary>
            // See your Windows API docs.
            // </summary>
            [MarshalAs(UnmanagedType.LPTStr)]
            public string pszDisplayName;
            // <summary>
            // See your Windows API docs.
            // </summary>
            [MarshalAs(UnmanagedType.LPTStr)]
            public string lpszTitle;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int ulFlags;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr lpfnCallback;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr lParam;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int iImage;
        };


        [ComImport]
        [Guid("00000002-0000-0000-C000-000000000046")]
        [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        public interface IMalloc
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            [PreserveSig]
            IntPtr Alloc(IntPtr cb);

            // <summary>
            // See your Windows API docs.
            // </summary>
            [PreserveSig]
            IntPtr Realloc(IntPtr pv, IntPtr cb);

            // <summary>
            // See your Windows API docs.
            // </summary>
            [PreserveSig]
            void Free(IntPtr pv);

            // <summary>
            // See your Windows API docs.
            // </summary>
            [PreserveSig]
            IntPtr GetSize(IntPtr pv);

            // <summary>
            // See your Windows API docs.
            // </summary>
            [PreserveSig]
            int DidAlloc(IntPtr pv);

            // <summary>
            // See your Windows API docs.
            // </summary>
            [PreserveSig]
            void HeapMinimize();
        }


        //Helper routine to free memory allocated using shells malloc object
        public static void SHMemFree(IntPtr ptr)
        {
            object shmalloc = null;

            if (SHGetMalloc(out shmalloc) == 0)
            {
                IMalloc malloc = (IMalloc)shmalloc;

                (malloc).Free(ptr);
            }
        }


        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
        public class DEVMODE
        {
            // <summary>
            // See your Windows API documentation.
            // </summary>
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = CCHDEVICENAME)]
            public string dmDeviceName;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmSpecVersion;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmDriverVersion;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmSize;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmDriverExtra;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public int dmFields;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmOrientation;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmPaperSize;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmPaperLength;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmPaperWidth;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmScale;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmCopies;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmDefaultSource;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmPrintQuality;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmColor;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmDuplex;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmYResolution;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmTTOption;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmCollate;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = CCHDEVICENAME)]
            public string dmFormName;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public short dmLogPixels;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public int dmBitsPerPel;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public int dmPelsWidth;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public int dmPelsHeight;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public int dmDisplayFlags;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public int dmDisplayFrequency;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public int dmICMMethod;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public int dmICMIntent;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public int dmMediaType;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public int dmDitherType;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public int dmReserved1;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public int dmReserved2;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public int dmPanningWidth;
            // <summary>
            // See your Windows API documentation.
            // </summary>
            public int dmPanningHeight;
        };



        [StructLayout(LayoutKind.Sequential)]
        public struct COLORREF
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int ColorDWORD;

            // <summary>
            // See your Windows API docs.
            // </summary>
            public COLORREF(int r, int g, int b)
            {
                ColorDWORD = ((int)r) +
                    (int)(g << 8) +
                    (int)(b << 16);
            }

            // <summary>
            // See your Windows API docs.
            // </summary>
            public override string ToString()
            {
                return ColorDWORD.ToString();
            }
        }


        [StructLayout(LayoutKind.Sequential)]
        public struct COLORSCHEME
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int dwSize;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public COLORREF clrBtnHighlight;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public COLORREF clrBtnShadow;
        }


        [StructLayout(LayoutKind.Sequential)]
        public struct INITCOMMONCONTROLSEX_STRUCT
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int dwSize;             // size of this structure
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int dwICC;              // flags indicating which classes to be initialized
        }


        [StructLayout(LayoutKind.Sequential)]
        public struct MARGINS
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public MARGINS(int Left, int Right, int Top, int Bottom)
            {
                cxLeftWidth = Left;
                cxRightWidth = Right;
                cyTopHeight = Top;
                cyBottomHeight = Bottom;
            }

            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cxLeftWidth;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cxRightWidth;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cyTopHeight;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cyBottomHeight;
        }


        [StructLayout(LayoutKind.Sequential)]
        public struct NMHDR
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hwndFrom;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int idFrom;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int code;
        }


        [StructLayout(LayoutKind.Sequential)]
        public struct NMMOUSE
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public NMHDR hdr;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr dwItemSpec;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr dwItemData;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public POINT pt;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr dwHitInfo;
        }


        [StructLayout(LayoutKind.Sequential)]
        public struct NMREBARCHILDSIZE
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public NMHDR hdr;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int uBand;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int wID;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public RECT rcChild;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public RECT rcBand;
        }


        [StructLayout(LayoutKind.Sequential)]
        public struct POINT
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int x;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int y;
        }

        [StructLayout(LayoutKind.Sequential)]
        public struct RBHITTESTINFO
        {
            public POINT pt;
            public int flags;
            public int iBand;
        }

        [StructLayout(LayoutKind.Sequential)]
        public struct REBARBANDINFO
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public void REBARABANDINFO()
            {
                cbSize = (int)Marshal.SizeOf(this);
                fMask = 0;
                fStyle = 0;
                clrFore = new COLORREF(0, 0, 0);
                clrBack = new COLORREF(255, 255, 255);
                lpText = "";
                cch = 0;
                iImage = 0;
                hwndChild = IntPtr.Zero;
                cxMinChild = 0;
                cyMinChild = 0;
                cx = 0;
                hbmBack = IntPtr.Zero;
                wID = 0;
                cyChild = 0; //Initial Child Height
                cyMaxChild = 0;
                cyIntegral = 0;
                cxIdeal = 0;
                lParam = IntPtr.Zero;
                cxHeader = 0;
            }

            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cbSize;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int fMask;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int fStyle;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public COLORREF clrFore;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public COLORREF clrBack;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public string lpText;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cch; //Size of text buffer
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int iImage;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hwndChild;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cxMinChild;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cyMinChild;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cx;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hbmBack;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int wID;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cyChild;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cyMaxChild;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cyIntegral;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cxIdeal;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr lParam;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cxHeader;
        }


        [StructLayout(LayoutKind.Sequential)]
        public struct REBARINFO
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cbSize;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int fMask;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr himl;
        }


        [StructLayout(LayoutKind.Explicit)]
        public struct RECT
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            [FieldOffset(0)]
            public int left;
            // <summary>
            // See your Windows API docs.
            // </summary>
            [FieldOffset(4)]
            public int top;
            // <summary>
            // See your Windows API docs.
            // </summary>
            [FieldOffset(8)]
            public int right;
            // <summary>
            // See your Windows API docs.
            // </summary>
            [FieldOffset(12)]
            public int bottom;

            // <summary>
            // See your Windows API docs.
            // </summary>
            public void Set()
            {
                this.left = this.top = this.right = this.bottom = 0;
            }

            // <summary>
            // See your Windows API docs.
            // </summary>
            public void Set(int left, int top, int right, int bottom)
            {
                this.left = left;
                this.top = top;
                this.right = right;
                this.bottom = bottom;
            }

            // <summary>
            // See your Windows API docs.
            // </summary>
            public void Set(RECT rect)
            {
                this.left = rect.left;
                this.top = rect.top;
                this.right = rect.right;
                this.bottom = rect.bottom;
            }
        }





        [StructLayout(LayoutKind.Sequential)]
        public struct NMTOOLBAR
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public NMHDR hdr;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int iItem;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public TBBUTTON tbButton;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cchText;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr pszText;
        }


        [StructLayout(LayoutKind.Sequential)]
        public struct NMCUSTOMDRAW
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public NMHDR hdr;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int dwDrawStage;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hdc;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public RECT rc;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr dwItemSpec;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int uItemState;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr lItemlParam;
        }


        [StructLayout(LayoutKind.Sequential)]
        public struct LPNMTBCUSTOMDRAW
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public NMCUSTOMDRAW nmcd;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hbrMonoDither;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hbrLines;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hpenLines;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int clrText;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int clrMark;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int clrTextHighlight;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int clrBtnFace;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int clrBtnHighlight;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int clrHighlightHotTrack;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public RECT rcText;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int nStringBkMode;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int nHLStringBkMode;
        }



        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
        public struct TOOLTIPTEXT
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public NMHDR hdr;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr lpszText;
            // <summary>
            // See your Windows API docs.
            // </summary>
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
            public string szText;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hinst;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int uFlags;
        }


        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
        public struct TOOLTIPTEXTA
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public NMHDR hdr;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr lpszText;
            // <summary>
            // See your Windows API docs.
            // </summary>
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
            public string szText;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hinst;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int uFlags;
        }



        [StructLayout(LayoutKind.Sequential, Pack = 1)]
        public struct TBBUTTON
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int iBitmap;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int idCommand;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public byte fsState;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public byte fsStyle;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public byte bReserved0;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public byte bReserved1;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int dwData;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int iString;
        }


        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
        public struct TBBUTTONINFO
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cbSize;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int dwMask;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int idCommand;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int iImage;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public byte fsState;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public byte fsStyle;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public short cx;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr lParam;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr pszText;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cchText;
        }


        public delegate IntPtr HookProc(int nCode, IntPtr wParam, IntPtr lParam);


        [StructLayout(LayoutKind.Sequential)]
        public struct MSG
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hwnd;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int message;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr wParam;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr lParam;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int time;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int pt_x;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int pt_y;
        }



        [StructLayout(LayoutKind.Sequential)]
        public struct NMREBARCHEVRON
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public NMHDR hdr;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int uBand;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int wID;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int lParam;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public RECT rc;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int lParamNM;
        }


        [StructLayout(LayoutKind.Sequential)]
        public struct IMAGELISTDRAWPARAMS
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cbSize;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr himl;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int i;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public IntPtr hdcDst;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int x;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int y;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cx;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cy;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int xBitmap;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int yBitmap;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int rgbBk;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int rgbFg;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int fStyle;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int dwRop;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int fState;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int Frame;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int crEffect;
        }





        [StructLayout(LayoutKind.Sequential)]
        public struct DLLVERSIONINFO
        {
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int cbSize;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int dwMajorVersion;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int dwMinorVersion;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int dwBuildNumber;
            // <summary>
            // See your Windows API docs.
            // </summary>
            public int dwPlatformID;
        }

        public struct SMPTE
        {
            public byte hour;
            public byte min;
            public byte sec;
            public byte frame;
            public byte fps;
            public byte dummy;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
            public byte pad;
        }
        public struct MIDI
        {
            public int songptrpos;
        }
        public struct MMTIME
        {
            public int wType;
            public int u;
        }
        public struct MIDIEVENT
        {
            public int dwDeltaTime;
            public int dwStreamID;
            public int dwEvent;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
            public int dwParms;
        }
        public struct MIDISTRMBUFFVER
        {
            public int dwVersion;
            public int dwMid;
            public int dwOEMVersion;
        }
        public struct MIDIPROPTIMEDIV
        {
            public int cbStruct;
            public int dwTimeDiv;
        }
        public struct MIDIPROPTEMPO
        {
            public int cbStruct;
            public int dwTempo;
        }
        public struct MIXERCAPS
        {
            public short wMid;
            public short wPid;
            public int vDriverVersion;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAXPNAMELEN)]
            public string szPname;
            public int fdwSupport;
            public int cDestinations;
        }
        public struct TARGET
        {
            public int dwType;
            public int dwDeviceID;
            public short wMid;
            public short wPid;
            public int vDriverVersion;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAXPNAMELEN)]
            public string szPname;
        }
        public struct MIXERLINE
        {
            public int cbStruct;
            public int dwDestination;
            public int dwSource;
            public int dwLineID;
            public int fdwLine;
            public int dwUser;
            public int dwComponentType;
            public int cChannels;
            public int cConnections;
            public int cControls;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MIXER_SHORT_NAME_CHARS)]
            public string szShortName;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MIXER_LONG_NAME_CHARS)]
            public string szName;
            public TARGET tTarget;
        }
        public struct MIXERCONTROL
        {
            public int cbStruct;
            public int dwControlID;
            public int dwControlType;
            public int fdwControl;
            public int cMultipleItems;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MIXER_SHORT_NAME_CHARS)]
            public string szShortName;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MIXER_LONG_NAME_CHARS)]
            public string szName;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
            public int[] Bounds;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
            public int[] Metrics;
        }
        public struct MIXERLINECONTROLS
        {
            public int cbStruct;
            public int dwLineID;
            public int dwControl;
            public int cControls;
            public int cbmxctrl;
            public MIXERCONTROL pamxctrl;
        }
        public struct MIXERCONTROLDETAILS
        {
            public int cbStruct;
            public int dwControlID;
            public int cChannels;
            public int item;
            public int cbDetails;
            public int paDetails;
        }
        public struct MIXERCONTROLDETAILS_LISTTEXT
        {
            public int dwParam1;
            public int dwParam2;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MIXER_LONG_NAME_CHARS)]
            public string szName;
        }
        public struct MIXERCONTROLDETAILS_BOOLEAN
        {
            public int fValue;
        }
        public struct MIXERCONTROLDETAILS_SIGNED
        {
            public int lValue;
        }
        public struct MIXERCONTROLDETAILS_UNSIGNED
        {
            public int dwValue;
        }
        public struct JOYINFOEX
        {
            public int dwSize;
            public int dwFlags;
            public int dwXpos;
            public int dwYpos;
            public int dwZpos;
            public int dwRpos;
            public int dwUpos;
            public int dwVpos;
            public int dwButtons;
            public int dwButtonNumber;
            public int dwPOV;
            public int dwReserved1;
            public int dwReserved2;
        }
        public struct DRVCONFIGINFO
        {
            public int dwDCISize;
            public string lpszDCISectionName;
            public string lpszDCIAliasName;
            public int dnDevNode;
        }
        public struct WAVEHDR
        {
            public string lpData;
            public int dwBufferLength;
            public int dwBytesRecorded;
            public int dwUser;
            public int dwFlags;
            public int dwLoops;
            public int lpNext;
            public int Reserved;
        }
        public struct WAVEOUTCAPS
        {
            public short wMid;
            public short wPid;
            public int vDriverVersion;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAXPNAMELEN)]
            public string szPname;
            public int dwFormats;
            public short wChannels;
            public int dwSupport;
        }
        public struct WAVEINCAPS
        {
            public short wMid;
            public short wPid;
            public int vDriverVersion;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAXPNAMELEN)]
            public string szPname;
            public int dwFormats;
            public short wChannels;
        }
        public struct WAVEFORMAT
        {
            public short wFormatTag;
            public short nChannels;
            public int nSamplesPerSec;
            public int nAvgBytesPerSec;
            public short nBlockAlign;
        }
        public struct PCMWAVEFORMAT
        {
            public WAVEFORMAT wf;
            public short wBitsPerSample;
        }
        public struct MIDIOUTCAPS
        {
            public short wMid;
            public short wPid;
            public int vDriverVersion;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAXPNAMELEN)]
            public string szPname;
            public short wTechnology;
            public short wVoices;
            public short wNotes;
            public short wChannelMask;
            public int dwSupport;
        }
        public struct MIDIINCAPS
        {
            public short wMid;
            public short wPid;
            public int vDriverVersion;
            public string szPname;
        }
        public struct MIDIHDR
        {
            public string lpData;
            public int dwBufferLength;
            public int dwBytesRecorded;
            public int dwUser;
            public int dwFlags;
            public int lpNext;
            public int Reserved;
        }
        public struct AUXCAPS
        {
            public short wMid;
            public short wPid;
            public int vDriverVersion;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAXPNAMELEN)]
            public string szPname;
            public short wTechnology;
            public int dwSupport;
        }
        public struct TIMECAPS
        {
            public int wPeriodMin;
            public int wPeriodMax;
        }
        public struct JOYCAPS
        {
            public short wMid;
            public short wPid;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAXPNAMELEN)]
            public string szPname;
            public short wXmin;
            public short wXmax;
            public short wYmin;
            public short wYmax;
            public short wZmin;
            public short wZmax;
            public short wNumButtons;
            public short wPeriodMin;
            public short wPeriodMax;
        }
        public struct JOYINFO
        {
            public int wXpos;
            public int wYpos;
            public int wZpos;
            public int wButtons;
        }
        public struct MMIOINFO
        {
            public int dwFlags;
            public int fccIOProc;
            public int pIOProc;
            public int wErrorRet;
            public IntPtr htask;
            public int cchBuffer;
            public string pchBuffer;
            public string pchNext;
            public string pchEndRead;
            public string pchEndWrite;
            public int lBufOffset;
            public int lDiskOffset;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
            public int adwInfo;
            public int dwReserved1;
            public int dwReserved2;
            public IntPtr hmmio;
        }
        public struct MMCKINFO
        {
            public int ckid;
            public int ckSize;
            public int fccType;
            public int dwDataOffset;
            public int dwFlags;
        }
        public struct MCI_GENERIC_PARMS
        {
            public int dwCallback;
        }
        public struct MCI_OPEN_PARMS
        {
            public int dwCallback;
            public int wDeviceID;
            public string lpstrDeviceType;
            public string lpstrElementName;
            public string lpstrAlias;
        }
        public struct MCI_PLAY_PARMS
        {
            public int dwCallback;
            public int dwFrom;
            public int dwTo;
        }
        public struct MCI_SEEK_PARMS
        {
            public int dwCallback;
            public int dwTo;
        }
        public struct MCI_STATUS_PARMS
        {
            public int dwCallback;
            public int dwReturn;
            public int dwItem;
            public short dwTrack;
        }
        public struct MCI_INFO_PARMS
        {
            public int dwCallback;
            public string lpstrReturn;
            public int dwRetSize;
        }
        public struct MCI_GETDEVCAPS_PARMS
        {
            public int dwCallback;
            public int dwReturn;
            public int dwIten;
        }
        public struct MCI_SYSINFO_PARMS
        {
            public int dwCallback;
            public string lpstrReturn;
            public int dwRetSize;
            public int dwNumber;
            public int wDeviceType;
        }
        public struct MCI_SET_PARMS
        {
            public int dwCallback;
            public int dwTimeFormat;
            public int dwAudio;
        }
        public struct MCI_BREAK_PARMS
        {
            public int dwCallback;
            public int nVirtKey;
            public IntPtr hwndBreak;
        }
        public struct MCI_SOUND_PARMS
        {
            public int dwCallback;
            public string lpstrSoundName;
        }
        public struct MCI_SAVE_PARMS
        {
            public int dwCallback;
            public string lpFileName;
        }
        public struct MCI_LOAD_PARMS
        {
            public int dwCallback;
            public string lpFileName;
        }
        public struct MCI_RECORD_PARMS
        {
            public int dwCallback;
            public int dwFrom;
            public int dwTo;
        }
        public struct MCI_VD_PLAY_PARMS
        {
            public int dwCallback;
            public int dwFrom;
            public int dwTo;
            public int dwSpeed;
        }
        public struct MCI_VD_STEP_PARMS
        {
            public int dwCallback;
            public int dwFrames;
        }
        public struct MCI_VD_ESCAPE_PARMS
        {
            public int dwCallback;
            public string lpstrCommand;
        }
        public struct MCI_WAVE_OPEN_PARMS
        {
            public int dwCallback;
            public int wDeviceID;
            public string lpstrDeviceType;
            public string lpstrElementName;
            public string lpstrAlias;
            public int dwBufferSeconds;
        }
        public struct MCI_WAVE_DELETE_PARMS
        {
            public int dwCallback;
            public int dwFrom;
            public int dwTo;
        }
        public struct MCI_WAVE_SET_PARMS
        {
            public int dwCallback;
            public int dwTimeFormat;
            public int dwAudio;
            public int wInput;
            public int wOutput;
            public short wFormatTag;
            public short wReserved2;
            public short nChannels;
            public short wReserved3;
            public int nSamplesPerSec;
            public int nAvgBytesPerSec;
            public short nBlockAlign;
            public short wReserved4;
            public short wBitsPerSample;
            public short wReserved5;
        }
        public struct MCI_SEQ_SET_PARMS
        {
            public int dwCallback;
            public int dwTimeFormat;
            public int dwAudio;
            public int dwTempo;
            public int dwPort;
            public int dwSlave;
            public int dwMaster;
            public int dwOffset;
        }
        public struct MCI_ANIM_OPEN_PARMS
        {
            public int dwCallback;
            public int wDeviceID;
            public string lpstrDeviceType;
            public string lpstrElementName;
            public string lpstrAlias;
            public int dwStyle;
            public IntPtr hwndParent;
        }
        public struct MCI_ANIM_PLAY_PARMS
        {
            public int dwCallback;
            public int dwFrom;
            public int dwTo;
            public int dwSpeed;
        }
        public struct MCI_ANIM_STEP_PARMS
        {
            public int dwCallback;
            public int dwFrames;
        }
        public struct MCI_ANIM_WINDOW_PARMS
        {
            public int dwCallback;
            public IntPtr hwnd;
            public int nCmdShow;
            public string lpstrText;
        }
        public struct MCI_ANIM_RECT_PARMS
        {
            public int dwCallback;
            public RECT rc;
        }
        public struct MCI_ANIM_UPDATE_PARMS
        {
            public int dwCallback;
            public RECT rc;
            public IntPtr hdc;
        }
        public struct MCI_OVLY_OPEN_PARMS
        {
            public int dwCallback;
            public int wDeviceID;
            public string lpstrDeviceType;
            public string lpstrElementName;
            public string lpstrAlias;
            public int dwStyle;
            public IntPtr hwndParent;
        }
        public struct MCI_OVLY_WINDOW_PARMS
        {
            public int dwCallback;
            public IntPtr hwnd;
            public int nCmdShow;
            public string lpstrText;
        }
        public struct MCI_OVLY_RECT_PARMS
        {
            public int dwCallback;
            public RECT rc;
        }
        public struct MCI_OVLY_SAVE_PARMS
        {
            public int dwCallback;
            public string lpFileName;
            public RECT rc;
        }
        public struct MCI_OVLY_LOAD_PARMS
        {
            public int dwCallback;
            public string lpFileName;
            public RECT rc;
        }

        public struct USER_INFO_3
        {
            public int Name;
            public int Password;
            public int PasswordAge;
            public int Privilege;
            public int HomeDir;
            public int Comment;
            public int Flags;
            public int ScriptPath;
            public int AuthFlags;
            public int FullName;
            public int UserComment;
            public int Parms;
            public int Workstations;
            public int LastLogon;
            public int LastLogoff;
            public int AcctExpires;
            public int MaxStorage;
            public int UnitsPerWeek;
            public int LogonHours;
            public int BadPwCount;
            public int NumLogons;
            public int LogonServer;
            public int CountryCode;
            public int CodePage;
            public int UserID;
            public int PrimaryGroupID;
            public int Profile;
            public int HomeDirDrive;
            public int PasswordExpired;
        }
        public struct GROUP_INFO_2
        {
            public int Name;
            public int Comment;
            public int GroupID;
            public int Attributes;
        }
        public struct LOCALGROUP_MEMBERS_INFO_0
        {
            public int pSID;
        }
        public struct LOCALGROUP_MEMBERS_INFO_1
        {
            public int pSID;
            public g_netSID_NAME_USE eUsage;
            public int psName;
        }
        public struct WKSTA_INFO_102
        {
            public int wki102_platform_id;
            public int wki102_computername;
            public int wki102_langroup;
            public int wki102_ver_major;
            public int wki102_ver_minor;
            public int wki102_lanroot;
            public int wki102_logged_on_users;
        }
        public struct WKSTA_USER_INFO_1
        {
            public int wkui1_username;
            public int wkui1_logon_domain;
            public int wkui1_oth_domains;
            public int wkui1_logon_server;
        }
        public enum g_netSID_NAME_USE
        {
            SidTypeUser = 1,
            SidTypeGroup = 2,
            SidTypeDomain = 3,
            SidTypeAlias = 4,
            SidTypeWellKnownGroup = 5,
            SidTypeDeletedAccount = 6,
            SidTypeInvalid = 7,
            SidTypeUnknown = 8,
        }

        public struct DRAGINFO
        {
            public int uSize;
            public POINT pt;
            public int fNC;
            public string lpFileList;
            public int grfKeyState;
        }
        public struct APPBARDATA
        {
            public int cbSize;
            public IntPtr hwnd;
            public int uCallbackMessage;
            public int uEdge;
            public RECT rc;
            public int lParam;
        }
        public struct SHFILEOPSTRUCT
        {
            public IntPtr hwnd;
            public int wFunc;
            public string pFrom;
            public string pTo;
            public short fFlags;
            public int fAnyOperationsAborted;
            public IntPtr hNameMappings;
            public string lpszProgressTitle;
        }
        public struct SHNAMEMAPPING
        {
            public string pszOldPath;
            public string pszNewPath;
            public int cchOldPath;
            public int cchNewPath;
        }
        public struct SHELLEXECUTEINFO
        {
            public int cbSize;
            public int fMask;
            public IntPtr hwnd;
            public string lpVerb;
            public string lpFile;
            public string lpParameters;
            public string lpDirectory;
            public int nShow;
            public IntPtr hInstApp;
            public int lpIDList;
            public string lpClass;
            public IntPtr hkeyClass;
            public int dwHotKey;
            public IntPtr hIcon;
            public IntPtr hProcess;
        }
        public struct SHFILEINFO
        {
            public IntPtr hIcon;
            public int iIcon;
            public int dwAttributes;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_PATH)]
            public string szDisplayName;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
            public string szTypeName;
        }


        public struct CBTACTIVATESTRUCT
        {
            public int fMouse;
            public IntPtr hwndActive;
        }
        public struct EVENTMSG
        {
            public int message;
            public int paramL;
            public int paramH;
            public int time;
            public IntPtr hwnd;
        }
        public struct CWPSTRUCT
        {
            public int lParam;
            public int wParam;
            public int message;
            public IntPtr hwnd;
        }
        public struct DEBUGHOOKINFO
        {
            public IntPtr hModuleHook;
            public int Reserved;
            public int lParam;
            public int wParam;
            public int code;
        }
        public struct MOUSEHOOKSTRUCT
        {
            public POINT pt;
            public IntPtr hwnd;
            public int wHitTestCode;
            public int dwExtraInfo;
        }
        public struct MINMAXINFO
        {
            public POINT ptReserved;
            public POINT ptMaxSize;
            public POINT ptMaxPosition;
            public POINT ptMinTrackSize;
            public POINT ptMaxTrackSize;
        }
        public struct COPYDATASTRUCT
        {
            public int dwData;
            public int cbData;
            public int lpData;
        }
        public struct WINDOWPOS
        {
            public IntPtr hwnd;
            public IntPtr hwndInsertAfter;
            public int x;
            public int y;
            public int cx;
            public int cy;
            public int flags;
        }
        public struct ACCEL
        {
            public byte fVirt;
            public short key;
            public short cmd;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PAINTSTRUCT
        {
            public IntPtr hdc;
            public int fErase;
            public RECT rcPaint;
            public int fRestore;
            public int fIncUpdate;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
            public byte[] rgbReserved;
        }
        public struct CREATESTRUCT
        {
            public int lpCreateParams;
            public IntPtr hInstance;
            public IntPtr hMenu;
            public IntPtr hwndParent;
            public int cy;
            public int cx;
            public int y;
            public int x;
            public int style;
            public string lpszName;
            public string lpszClass;
            public int ExStyle;
        }
        public struct CBT_CREATEWND
        {
            public CREATESTRUCT lpcs;
            public IntPtr hwndInsertAfter;
        }
        public struct WINDOWPLACEMENT
        {
            public int Length;
            public int flags;
            public int showCmd;
            public POINT ptMinPosition;
            public POINT ptMaxPosition;
            public RECT rcNormalPosition;
        }
        public struct MEASUREITEMSTRUCT
        {
            public int CtlType;
            public int CtlID;
            public int itemID;
            public int itemWidth;
            public int itemHeight;
            public int itemData;
        }
        public struct DRAWITEMSTRUCT
        {
            public int CtlType;
            public int CtlID;
            public int itemID;
            public int itemAction;
            public int itemState;
            public IntPtr hwndItem;
            public IntPtr hdc;
            public RECT rcItem;
            public int itemData;
        }
        public struct DELETEITEMSTRUCT
        {
            public int CtlType;
            public int CtlID;
            public int itemID;
            public IntPtr hwndItem;
            public int itemData;
        }
        public struct COMPAREITEMSTRUCT
        {
            public int CtlType;
            public int CtlID;
            public IntPtr hwndItem;
            public int itemID1;
            public int itemData1;
            public int itemID2;
            public int itemData2;
        }
        public struct WNDCLASS
        {
            public int style;
            public int lpfnwndproc;
            public int cbClsextra;
            public int cbWndExtra2;
            public IntPtr hInstance;
            public IntPtr hIcon;
            public IntPtr hCursor;
            public IntPtr hbrBackground;
            public string lpszMenuName;
            public string lpszClassName;
        }
        public struct DLGTEMPLATE
        {
            public int style;
            public int dwExtendedStyle;
            public short cdit;
            public short x;
            public short y;
            public short cx;
            public short cy;
        }
        public struct DLGITEMTEMPLATE
        {
            public int style;
            public int dwExtendedStyle;
            public short x;
            public short y;
            public short cx;
            public short cy;
            public short id;
        }
        public struct MENUITEMTEMPLATEHEADER
        {
            public short versionNumber;
            public short offset;
        }
        public struct MENUITEMTEMPLATE
        {
            public short mtOption;
            public short mtID;
            public byte mtString;
        }
        public struct ICONINFO
        {
            public int fIcon;
            public int xHotspot;
            public int yHotspot;
            public IntPtr hbmMask;
            public IntPtr hbmColor;
        }
        public struct MDICREATESTRUCT
        {
            public string szClass;
            public string szTitle;
            public IntPtr hOwner;
            public int x;
            public int y;
            public int cx;
            public int cy;
            public int style;
            public int lParam;
        }
        public struct CLIENTCREATESTRUCT
        {
            public IntPtr hWindowMenu;
            public int idFirstChild;
        }
        public struct MULTIKEYHELP
        {
            public int mkSize;
            public byte mkKeylist;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 253)]
            public string szKeyphrase;
        }
        public struct HELPWININFO
        {
            public int wStructSize;
            public int x;
            public int y;
            public int dx;
            public int dy;
            public int wMax;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 2)]
            public string rgchMember;
        }
        public struct DDEACK
        {
            public short bAppReturnCode;
            public short Reserved;
            public short fbusy;
            public short fack;
        }
        public struct DDEADVISE
        {
            public short Reserved;
            public short fDeferUpd;
            public short fAckReq;
            public short cfFormat;
        }
        public struct DDEDATA
        {
            public short unused;
            public short fresponse;
            public short fRelease;
            public short Reserved;
            public short fAckReq;
            public short cfFormat;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
            public byte Value;
        }
        public struct DDEPOKE
        {
            public short unused;
            public short fRelease;
            public short fReserved;
            public short cfFormat;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
            public byte Value;
        }
        public struct DDELN
        {
            public short unused;
            public short fRelease;
            public short fDeferUpd;
            public short fAckReq;
            public short cfFormat;
        }
        public struct DDEUP
        {
            public short unused;
            public short fAck;
            public short fRelease;
            public short fReserved;
            public short fAckReq;
            public short cfFormat;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
            public byte rgb;
        }
        public struct HSZPAIR
        {
            public IntPtr hszSvc;
            public IntPtr hszTopic;
        }
        public struct SECURITY_QUALITY_OF_SERVICE
        {
            public int Length;
            public short Impersonationlevel;
            public short ContextTrackingMode;
            public int EffectiveOnly;
        }
        public struct CONVCONTEXT
        {
            public int cb;
            public int wFlags;
            public int wCountryID;
            public int iCodePage;
            public int dwLangID;
            public int dwSecurity;
            public SECURITY_QUALITY_OF_SERVICE qos;
        }
        public struct CONVINFO
        {
            public int cb;
            public IntPtr hUser;
            public IntPtr hConvPartner;
            public IntPtr hszSvcPartner;
            public IntPtr hszServiceReq;
            public IntPtr hszTopic;
            public IntPtr hszItem;
            public int wFmt;
            public int wType;
            public int wStatus;
            public int wConvst;
            public int wLastError;
            public IntPtr hConvList;
            public CONVCONTEXT ConvCtxt;
            public IntPtr hwnd;
            public IntPtr hwndPartner;
        }
        public struct DDEML_MSG_HOOK_DATA
        {
            public int uiLo;
            public int uiHi;
            public int cbData;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
            public int Data;
        }
        public struct MONMSGSTRUCT
        {
            public int cb;
            public IntPtr hwndTo;
            public int dwTime;
            public IntPtr htask;
            public int wMsg;
            public int wParam;
            public int lParam;
            public DDEML_MSG_HOOK_DATA dmhd;
        }
        public struct MONCBSTRUCT
        {
            public int cb;
            public int dwTime;
            public IntPtr htask;
            public int dwRet;
            public int wType;
            public int wFmt;
            public IntPtr hConv;
            public IntPtr hsz1;
            public IntPtr hsz2;
            public IntPtr hData;
            public int dwData1;
            public int dwData2;
            public CONVCONTEXT cc;
            public int cbData;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
            public int Data;
        }
        public struct MONHSZSTRUCT
        {
            public int cb;
            public int fsAction;
            public int dwTime;
            public IntPtr hsz;
            public IntPtr htask;
            public byte str;
        }
        public struct MONERRSTRUCT
        {
            public int cb;
            public int wLastError;
            public int dwTime;
            public IntPtr htask;
        }
        public struct MONLINKSTRUCT
        {
            public int cb;
            public int dwTime;
            public IntPtr htask;
            public int fEstablished;
            public int fNoData;
            public IntPtr hszSvc;
            public IntPtr hszTopic;
            public IntPtr hszItem;
            public int wFmt;
            public int fServer;
            public IntPtr hConvServer;
            public IntPtr hConvClient;
        }
        public struct MONCONVSTRUCT
        {
            public int cb;
            public int fConnect;
            public int dwTime;
            public IntPtr htask;
            public IntPtr hszSvc;
            public IntPtr hszTopic;
            public IntPtr hConvClient;
            public IntPtr hConvServer;
        }
        public struct DRAWTEXTPARAMS
        {
            public int cbSize;
            public int iTabLength;
            public int iLeftMargin;
            public int iRightMargin;
            public int uiLengthDrawn;
        }
        public struct MENUITEMINFO
        {
            public int cbSize;
            public int fMask;
            public int fType;
            public int fState;
            public int wID;
            public IntPtr hSubMenu;
            public IntPtr hbmpChecked;
            public IntPtr hbmpUnchecked;
            public int dwItemData;
            public string dwTypeData;
            public int cch;
        }
        public struct SCROLLINFO
        {
            public int cbSize;
            public int fMask;
            public int nMin;
            public int nMax;
            public int nPage;
            public int nPos;
            public int nTrackPos;
        }
        public struct MSGBOXPARAMS
        {
            public int cbSize;
            public IntPtr hwndOwner;
            public IntPtr hInstance;
            public string lpszText;
            public string lpszCaption;
            public int dwStyle;
            public string lpszIcon;
            public int dwContextHelpId;
            public int lpfnMsgBoxCallback;
            public int dwLanguageId;
        }
        public struct WNDCLASSEX
        {
            public int cbSize;
            public int style;
            public int lpfnWndProc;
            public int cbClsExtra;
            public int cbWndExtra;
            public IntPtr hInstance;
            public IntPtr hIcon;
            public IntPtr hCursor;
            public IntPtr hbrBackground;
            public string lpszMenuName;
            public string lpszClassName;
            public IntPtr hIconSm;
        }
        public struct TPMPARAMS
        {
            public int cbSize;
            public RECT rcExclude;
        }


        [StructLayout(LayoutKind.Sequential)]
        public struct TRACKMOUSEEVENTS
        {
            public int cbSize;
            public int dwFlags;
            public IntPtr hWnd;
            public int dwHoverTime;
        }

        #endregion

        #region DLL Imports

        #region Kernel32
        [DllImport("kernel32.dll")]
        public static extern IntPtr LoadLibrary(string lpFileName);

        [DllImport("kernel32.dll")]
        public static extern int FreeLibrary(IntPtr module);

        [DllImport("kernel32.dll")]
        public static extern IntPtr FindResource(IntPtr module, string name, string type);

        [DllImport("kernel32.dll")]
        public static extern IntPtr FindResource(IntPtr module, IntPtr name, string type);

        [DllImport("kernel32.dll")]
        public static extern IntPtr FindResource(IntPtr module, IntPtr name, IntPtr type);

        [DllImport("kernel32.dll")]
        public static extern IntPtr FindResource(IntPtr module, string name, IntPtr type);

        [DllImport("kernel32.dll")]
        public static extern IntPtr LoadResource(IntPtr module, IntPtr hrsrc);

        [DllImport("kernel32.dll")]
        public static extern IntPtr LockResource(IntPtr hglobal);

        [DllImport("kernel32.dll")]
        public static extern int FreeResource(IntPtr hglobal);

        [DllImport("kernel32.dll")]
        public static extern bool RtlMoveMemory(IntPtr dest, IntPtr source, int dwcount);

        [DllImport("Kernel32.dll")]
        public static extern int QueryPerformanceCounter(out long value);

        [DllImport("Kernel32.dll")]
        public static extern int QueryPerformanceFrequency(out long frequency);

        [DllImport("kernel32.dll")]
        public static extern void CopyMemory(
            IntPtr Destination,
            IntPtr Source,
            IntPtr Length
            );

        [DllImport("kernel32.dll")]
        public static extern void CopyMemory(
            ref NETRESOURCE Destination,
            IntPtr Source,
            IntPtr Length
            );

        [DllImport("kernel32.dll")]
        public static extern int GetPublicProfileInt(
            string lpAppName,  // section name
            string lpKeyName,  // key name
            int nDefault,      // return value if key name not found
            string lpFileName  // initialization file name
            );


        [DllImport("kernel32.dll")]
        public static extern int WritePublicProfileString(
            string lpAppName,  // section name
            string lpKeyName,  // key name
            string lpValue,    // return value if key name not found
            string lpFileName  // initialization file name
            );


        [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
        public static extern int GetWindowsDirectory(
            StringBuilder lpBuffer,  // buffer
            int nSize         // size
            );

        [DllImport("kernel32.dll")]
        public static extern void ExitProcess(int exitCode);
        [DllImport("kernel32.dll")]
        public static extern int GetDriveType(string lpRootPathName);


        [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
        public static extern int GetVolumeInformation(
            string lpRootPathName,           // root directory
            StringBuilder lpVolumeNameBuffer,        // volume name buffer
            int nVolumeNameSize,            // length of name buffer
            int lpVolumeSerialNumber,     // volume serial number
            int lpMaximumComponentLength, // maximum file name length
            int lpFileSystemFlags,        // file system options
            StringBuilder lpFileSystemNameBuffer,    // file system name buffer
            int nFileSystemNameSize         // length of file system name buffer
            );


        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern IntPtr CreateFile(
            string filename,
            int desiredAccess,
            int shareMode,
            IntPtr securityAttributes,   // really SecurityAttributes pointer
            int creationDisposition,
            int flagsAndAttributes,
            IntPtr templateFile);


        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern int GetLastError();


        [DllImport("kernel32.dll")]
        public static extern int CloseHandle(IntPtr handle);


        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern int SetFilePointerEx(IntPtr hFile,
            long liDistanceToMove,
            int lpReturn,
            int dwMoveMethod);



        [DllImport("kernel32.dll")]
        public static extern int GetDiskFreeSpaceEx(string lpDirectoryName, ref long lpFreeBytesAvailable, ref long lpTotalNumberOfBytes, ref long lpTotalNumberOfFreeBytes);
        [DllImport("kernel32.dll")]
        public static extern void GlobalMemoryStatus([In, MarshalAs(UnmanagedType.LPStruct)]MEMORYSTATUS lpBuffer);


        [DllImport("KERNEL32.DLL")]
        public static extern int GetPrivateProfileInt(
            string lpAppName,  // section name
            string lpKeyName,  // key name
            int nDefault,      // return value if key name not found
            string lpFileName  // initialization file name
            );


        [DllImport("KERNEL32.DLL")]
        public static extern int WritePrivateProfileString(
            string lpAppName,  // section name
            string lpKeyName,  // key name
            string lpValue,    // return value if key name not found
            string lpFileName  // initialization file name
            );

        [DllImport("kernel32.dll")]
        public extern static int GetPrivateProfileSectionNames(
            IntPtr lpReturnedString,
            int nSize,
            string lpFileName);

        [DllImport("kernel32.dll")]
        public extern static int GetPrivateProfileSection(
            string lpAppName,
            IntPtr lpReturnedString,
            int nSize,
            string lpFileName);

        [DllImport("Kernel32.Dll")]
        public static extern int FormatMessage(
            int dwFlags,      // source and processing options
            IntPtr lpSource,   // message source
            int dwMessageId,  // message identifier
            int dwLanguageId, // language identifier
            StringBuilder lpBuffer,    // message buffer
            int nSize,        // maximum size of message buffer
            IntPtr Arguments  // array of message inserts
            );
        [System.Runtime.InteropServices.DllImport("KERNEL32.DLL")]
        public static extern int Beep(
            int dwFreq,      // sound frequency
            int dwDuration   // sound duration
            );


        [DllImport("kernel32.dll", ExactSpelling = true, CharSet = CharSet.Auto)]
        public static extern int GetCurrentThreadId();

        [DllImport("kernel32")]
        public static extern int SetSystemTimeAdjustment(int dwTimeAdjustment, int bTimeAdjustmentDisabled);
        [DllImport("kernel32")]
        public static extern void OutputDebugString(string lpszOutputString);
        [DllImport("KERNEL32")]
        public static extern int ConvertDefaultLocale(int Locale);
        [DllImport("KERNEL32")]
        public static extern int EnumDateFormats(int lpDateFmtEnumProc, int Locale, int dwFlags);
        [DllImport("KERNEL32")]
        public static extern int EnumSystemCodePages(int lpCodePageEnumProc, int dwFlags);
        [DllImport("KERNEL32")]
        public static extern int EnumSystemLocales(int lpLocaleEnumProc, int dwFlags);
        [DllImport("KERNEL32")]
        public static extern int EnumTimeFormats(int lpTimeFmtEnumProc, int Locale, int dwFlags);
        [DllImport("KERNEL32")]
        public static extern int GetThreadLocale();
        [DllImport("KERNEL32")]
        public static extern int IsValidLocale(int Locale, int dwFlags);
        [DllImport("KERNEL32")]
        public static extern void ZeroMemory(IntPtr dest, int numBytes);
        [DllImport("kernel32")]
        public static extern COORD GetLargestConsoleWindowSize(IntPtr hConsoleOutput);
        [DllImport("kernel32")]
        public static extern int AllocConsole();
        [DllImport("kernel32")]
        public static extern int BackupRead(IntPtr hFile, Byte lpBuffer, int nNumberOfBytesToRead, ref int lpNumberOfBytesRead, int bAbort, int bProcessSecurity, IntPtr lpContext);
        [DllImport("kernel32")]
        public static extern int BackupSeek(IntPtr hFile, int dwLowBytesToSeek, int dwHighBytesToSeek, ref int lpdwLowByteSeeked, ref int lpdwHighByteSeeked, ref int lpContext);
        [DllImport("kernel32")]
        public static extern int BackupWrite(IntPtr hFile, Byte lpBuffer, int nNumberOfBytesToWrite, ref int lpNumberOfBytesWritten, int bAbort, int bProcessSecurity, ref int lpContext);
        [DllImport("kernel32")]
        public static extern IntPtr BeginUpdateResource(string pFileName, int bDeleteExistingResources);
        [DllImport("kernel32")]
        public static extern int BuildCommDCB(string lpDef, ref DCB lpDCB);
        [DllImport("kernel32")]
        public static extern int BuildCommDCBAndTimeouts(string lpDef, ref DCB lpDCB, ref COMMTIMEOUTS lpCommTimeouts);
        [DllImport("kernel32")]
        public static extern int CallNamedPipe(string lpNamedPipeName, IntPtr lpInBuffer, int nInBufferSize, IntPtr lpOutBuffer, int nOutBufferSize, ref int lpBytesRead, int nTimeOut);
        [DllImport("kernel32")]
        public static extern int ClearCommBreak(int nCid);
        [DllImport("kernel32")]
        public static extern int ClearCommError(IntPtr hFile, ref int lpErrors, ref COMSTAT lpStat);
        [DllImport("kernel32")]
        public static extern int CommConfigDialog(string lpszName, IntPtr hwnd, ref COMMCONFIG lpCC);
        [DllImport("kernel32")]
        public static extern int CompareFileTime(ref Com.FILETIME lpFileTime1, ref Com.FILETIME lpFileTime2);
        [DllImport("kernel32")]
        public static extern int CompareString(int Locale, int dwCmpFlags, string lpString1, int cchCount1, string lpString2, int cchCount2);
        [DllImport("kernel32")]
        public static extern int ConnectNamedPipe(IntPtr hNamedPipe, ref OVERLAPPED lpOverlapped);
        [DllImport("kernel32")]
        public static extern int ContinueDebugEvent(int dwProcessId, int dwThreadId, int dwContinueStatus);
        [DllImport("kernel32")]
        public static extern int CopyFile(string lpExistingFileName, string lpNewFileName, int bFailIfExists);
        [DllImport("kernel32")]
        public static extern int CreateConsoleScreenBuffer(int dwDesiredAccess, int dwShareMode, ref SECURITY_ATTRIBUTES lpSecurityAttributes, int dwFlags, IntPtr lpScreenBufferData);
        [DllImport("kernel32")]
        public static extern int CreateDirectory(string lpPathName, ref SECURITY_ATTRIBUTES lpSecurityAttributes);
        [DllImport("kernel32")]
        public static extern int CreateDirectoryEx(string lpTemplateDirectory, string lpNewDirectory, ref SECURITY_ATTRIBUTES lpSecurityAttributes);
        [DllImport("kernel32")]
        public static extern IntPtr CreateEvent(ref SECURITY_ATTRIBUTES lpEventAttributes, int bManualReset, int bInitialState, string lpName);
        [DllImport("kernel32")]
        public static extern IntPtr CreateFile(string lpFileName, int dwDesiredAccess, int dwShareMode, ref SECURITY_ATTRIBUTES lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, IntPtr hTemplateFile);
        [DllImport("kernel32")]
        public static extern IntPtr CreateFileMapping(IntPtr hFile, ref SECURITY_ATTRIBUTES lpFileMappigAttributes, int flProtect, int dwMaximumSizeHigh, int dwMaximumSizeLow, string lpName);
        [DllImport("kernel32")]
        public static extern int CreateIoCompletionPort(int FileHandle, int ExistingCompletionPort, int CompletionKey, int NumberOfConcurrentThreads);
        [DllImport("kernel32")]
        public static extern int CreateMailslot(string lpName, int nMaxMessageSize, int lReadTimeout, ref SECURITY_ATTRIBUTES lpSecurityAttributes);
        [DllImport("kernel32")]
        public static extern IntPtr CreateMutex(ref SECURITY_ATTRIBUTES lpMutexAttributes, int bInitialOwner, string lpName);
        [DllImport("kernel32")]
        public static extern IntPtr CreateNamedPipe(string lpName, int dwOpenMode, int dwPipeMode, int nMaxInstances, int nOutBufferSize, int nInBufferSize, int nDefaultTimeOut, ref SECURITY_ATTRIBUTES lpSecurityAttributes);
        [DllImport("kernel32")]
        public static extern IntPtr CreatePipe(int phReadPipe, int phWritePipe, ref SECURITY_ATTRIBUTES lpPipeAttributes, int nSize);
        [DllImport("kernel32")]
        public static extern IntPtr CreateProcess(string lpApplicationName, string lpCommandLine, ref SECURITY_ATTRIBUTES lpProcessAttributes, ref SECURITY_ATTRIBUTES lpThreadAttributes, int bInheritHandles, int dwCreationFlags, IntPtr lpEnvironment, string lpCurrentDriectory, ref STARTUPINFO lpStartupInfo, ref PROCESS_INFORMATION lpProcessInformation);
        [DllImport("kernel32")]
        public static extern IntPtr CreateRemoteThread(IntPtr hProcess, ref SECURITY_ATTRIBUTES lpThreadAttributes, int dwStackSize, ref int lpStartAddress, IntPtr lpParameter, int dwCreationFlags, ref int lpThreadId);
        [DllImport("kernel32")]
        public static extern IntPtr CreateSemaphore(ref SECURITY_ATTRIBUTES lpSemaphoreAttributes, int lInitialCount, int lMaximumCount, string lpName);
        [DllImport("kernel32")]
        public static extern int CreateTapePartition(IntPtr hDevice, int dwPartitionMethod, int dwCount, int dwSize);
        [DllImport("kernel32")]
        public static extern IntPtr CreateThread(ref SECURITY_ATTRIBUTES lpThreadAttributes, int dwStackSize, ref int lpStartAddress, IntPtr lpParameter, int dwCreationFlags, ref int lpThreadId);
        [DllImport("kernel32")]
        public static extern int DebugActiveProcess(int dwProcessId);
        [DllImport("kernel32")]
        public static extern int DefineDosDevice(int dwFlags, string lpDeviceName, string lpTargetPath);
        [DllImport("kernel32")]
        public static extern int DeleteFile(string lpFileName);
        [DllImport("kernel32")]
        public static extern int DeviceIoControl(IntPtr hDevice, int dwIoControlCode, IntPtr lpInBuffer, int nInBufferSize, IntPtr lpOutBuffer, int nOutBufferSize, ref int lpBytesReturned, ref OVERLAPPED lpOverlapped);
        [DllImport("kernel32")]
        public static extern int DisableThreadLibraryCalls(IntPtr hLibModule);
        [DllImport("kernel32")]
        public static extern int DisconnectNamedPipe(IntPtr hNamedPipe);
        [DllImport("kernel32")]
        public static extern int DosDateTimeToFileTime(int wFatDate, int wFatTime, ref Com.FILETIME lpFileTime);
        [DllImport("kernel32")]
        public static extern int DuplicateHandle(IntPtr hSourceProcessHandle, IntPtr hSourceHandle, IntPtr hTargetProcessHandle, ref int lpTargetHandle, int dwDesiredAccess, int bInheritHandle, int dwOptions);
        [DllImport("kernel32")]
        public static extern int EndUpdateResource(IntPtr hUpdate, int fDiscard);
        [DllImport("kernel32")]
        public static extern int EnumCalendarInfo(int lpCalInfoEnumProc, int Locale, int Calendar, int CalType);
        [DllImport("kernel32")]
        public static extern int EnumResourceLanguages(IntPtr hModule, string lpType, string lpName, ref int lpEnumFunc, int lParam);
        [DllImport("kernel32")]
        public static extern int EnumResourceNames(IntPtr hModule, string lpType, ref int lpEnumFunc, int lParam);
        [DllImport("kernel32")]
        public static extern int EnumResourceTypes(IntPtr hModule, ref int lpEnumFunc, int lParam);
        [DllImport("kernel32")]
        public static extern int EraseTape(IntPtr hDevice, int dwEraseType, int bimmediate);
        [DllImport("kernel32")]
        public static extern int EscapeCommFunction(int nCid, int nFunc);
        [DllImport("kernel32")]
        public static extern int ExpandEnvironmentStrings(string lpSrc, string lpDst, int nSize);
        [DllImport("kernel32")]
        public static extern int FileTimeToDosDateTime(ref Com.FILETIME lpFileTime, ref int lpFatDate, ref int lpFatTime);
        [DllImport("kernel32")]
        public static extern int FileTimeToLocalFileTime(ref Com.FILETIME lpFileTime, ref Com.FILETIME lpLocalFileTime);
        [DllImport("kernel32")]
        public static extern int FileTimeToSystemTime(ref Com.FILETIME lpFileTime, ref SYSTEMTIME lpSystemTime);
        [DllImport("kernel32")]
        public static extern int FillConsoleOutputAttribute(IntPtr hConsoleOutput, int wAttribute, int nLength, COORD dwWriteCoord, ref int lpNumberOfAttrsWritten);
        [DllImport("kernel32")]
        public static extern int FillConsoleOutputCharacter(IntPtr hConsoleOutput, Byte cCharacter, int nLength, COORD dwWriteCoord, ref int lpNumberOfCharsWritten);
        [DllImport("kernel32")]
        public static extern int FindClose(IntPtr hFindFile);
        [DllImport("kernel32")]
        public static extern int FindCloseChangeNotification(IntPtr hChangeHandle);
        [DllImport("kernel32")]
        public static extern int FindFirstChangeNotification(string lpPathName, int bWatchSubtree, int dwNotifyFilter);
        [DllImport("kernel32")]
        public static extern int FindFirstFile(string lpFileName, WIN32_FIND_DATA lpFindFileData);
        [DllImport("kernel32")]
        public static extern int FindNextChangeNotification(IntPtr hChangeHandle);
        [DllImport("kernel32")]
        public static extern int FindNextFile(IntPtr hFindFile, WIN32_FIND_DATA lpFindFileData);
        [DllImport("kernel32")]
        public static extern IntPtr FindResourceEx(IntPtr hModule, string lpType, string lpName, int wLanguage);
        [DllImport("kernel32")]
        public static extern IntPtr FindResourceEx(IntPtr hModule, IntPtr lpType, string lpName, int wLanguage);
        [DllImport("kernel32")]
        public static extern IntPtr FindResourceEx(IntPtr hModule, IntPtr lpType, IntPtr lpName, int wLanguage);
        [DllImport("kernel32")]
        public static extern IntPtr FindResourceEx(IntPtr hModule, string lpType, IntPtr lpName, int wLanguage);
        [DllImport("kernel32")]
        public static extern int FlushConsoleInputBuffer(IntPtr hConsoleInput);
        [DllImport("kernel32")]
        public static extern int FlushFileBuffers(IntPtr hFile);
        [DllImport("kernel32")]
        public static extern int FlushInstructionCache(IntPtr hProcess, IntPtr lpBaseAddress, int dwSize);
        [DllImport("kernel32")]
        public static extern int FlushViewOfFile(IntPtr lpBaseAddress, int dwNumberOfBytesToFlush);
        [DllImport("kernel32")]
        public static extern int FoldString(int dwMapFlags, string lpSrcStr, int cchSrc, string lpDestStr, int cchDest);
        [DllImport("kernel32")]
        public static extern int FormatMessage(int dwFlags, IntPtr lpSource, int dwMessageId, int dwLanguageId, StringBuilder lpBuffer, int nSize, int Arguments);
        [DllImport("kernel32")]
        public static extern int FreeConsole();
        [DllImport("kernel32")]
        public static extern int FreeEnvironmentStrings(string lpsz);
        [DllImport("kernel32")]
        public static extern int GenerateConsoleCtrlEvent(int dwCtrlEvent, int dwProcessGroupId);
        [DllImport("kernel32")]
        public static extern int GetACP();
        [DllImport("kernel32")]
        public static extern int GetBinaryType(string lpApplicationName, ref int lpBinaryType);
        [DllImport("kernel32")]
        public static extern int GetCPInfo(int CodePage, ref CPINFO lpCPInfo);
        [DllImport("kernel32")]
        public static extern int GetCommConfig(IntPtr hCommDev, ref COMMCONFIG lpCC, ref int lpdwSize);
        [DllImport("kernel32")]
        public static extern int GetCommMask(IntPtr hFile, ref int lpEvtMask);
        [DllImport("kernel32")]
        public static extern int GetCommModemStatus(IntPtr hFile, ref int lpModemStat);
        [DllImport("kernel32")]
        public static extern int GetCommProperties(IntPtr hFile, ref COMMPROP lpCommProp);
        [DllImport("kernel32")]
        public static extern int GetCommState(int nCid, ref DCB lpDCB);
        [DllImport("kernel32")]
        public static extern int GetCommTimeouts(IntPtr hFile, ref COMMTIMEOUTS lpCommTimeouts);
        [DllImport("kernel32")]
        public static extern int GetCommandLine();
        [DllImport("kernel32")]
        public static extern int GetCompressedFileSize(string lpFileName, ref int lpFileSizeHigh);
        [DllImport("kernel32")]
        public static extern int GetComputerName(StringBuilder lpBuffer, int nSize);
        [DllImport("kernel32")]
        public static extern int GetConsoleCP();
        [DllImport("kernel32")]
        public static extern int GetConsoleCursorInfo(IntPtr hConsoleOutput, ref CONSOLE_CURSOR_INFO lpConsoleCursorInfo);
        [DllImport("kernel32")]
        public static extern int GetConsoleMode(IntPtr hConsoleHandle, ref int lpMode);
        [DllImport("kernel32")]
        public static extern int GetConsoleOutputCP();
        [DllImport("kernel32")]
        public static extern int GetConsoleScreenBufferInfo(IntPtr hConsoleOutput, ref CONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);
        [DllImport("kernel32")]
        public static extern int GetConsoleTitle(string lpConsoleTitle, int nSize);
        [DllImport("kernel32")]
        public static extern int GetCurrencyFormat(int Locale, int dwFlags, string lpValue, ref CURRENCYFMT lpFormat, string lpCurrencyStr, int cchCurrency);
        [DllImport("kernel32")]
        public static extern int GetCurrentDirectory(int nBufferLength, StringBuilder lpBuffer);
        [DllImport("kernel32")]
        public static extern IntPtr GetCurrentProcess();
        [DllImport("kernel32")]
        public static extern int GetCurrentProcessId();
        [DllImport("kernel32")]
        public static extern IntPtr GetCurrentThread();
        [DllImport("kernel32")]
        public static extern int GetCurrentTime();
        [DllImport("kernel32")]
        public static extern int GetDateFormat(int Locale, int dwFlags, ref SYSTEMTIME lpDate, string lpFormat, string lpDateStr, int cchDate);
        [DllImport("kernel32")]
        public static extern int GetDefaultCommConfig(string lpszName, ref COMMCONFIG lpCC, ref int lpdwSize);
        [DllImport("kernel32")]
        public static extern int GetDiskFreeSpace(string lpRootPathName, ref int lpSectorsPerCluster, ref int lpBytesPerSector, ref int lpNumberOfFreeClusters, ref int lpTotalNumberOfClusters);
        [DllImport("kernel32")]
        public static extern int GetEnvironmentVariable(string lpName, StringBuilder lpBuffer, int nSize);
        [DllImport("kernel32")]
        public static extern int GetExitCodeProcess(IntPtr hProcess, ref int lpExitCode);
        [DllImport("kernel32")]
        public static extern int GetExitCodeThread(IntPtr hThread, ref int lpExitCode);
        [DllImport("kernel32")]
        public static extern int GetFileAttributes(string lpFileName);
        [DllImport("kernel32")]
        public static extern int GetFileInformationByHandle(IntPtr hFile, ref BY_HANDLE_FILE_INFORMATION lpFileInformation);
        [DllImport("kernel32")]
        public static extern int GetFileSize(IntPtr hFile, ref int lpFileSizeHigh);
        [DllImport("kernel32")]
        public static extern int GetFileTime(IntPtr hFile, ref Com.FILETIME lpCreationTime, ref Com.FILETIME lpLastAccessTime, ref Com.FILETIME lpLastWriteTime);
        [DllImport("kernel32")]
        public static extern int GetFileType(IntPtr hFile);
        [DllImport("kernel32")]
        public static extern int GetFullPathName(string lpFileName, int nBufferLength, StringBuilder lpBuffer, string lpFilePart);
        [DllImport("kernel32")]
        public static extern int GetHandleInformation(IntPtr hObject, ref int lpdwFlags);
        [DllImport("kernel32")]
        public static extern int GetLocaleInfo(int Locale, int LCType, string lpLCData, int cchData);
        [DllImport("kernel32")]
        public static extern int GetLogicalDriveStrings(int nBufferLength, StringBuilder lpBuffer);
        [DllImport("kernel32")]
        public static extern int GetLogicalDrives();
        [DllImport("kernel32")]
        public static extern int GetMailslotInfo(IntPtr hMailslot, ref int lpMaxMessageSize, ref int lpNextSize, ref int lpMessageCount, ref int lpReadTimeout);
        [DllImport("kernel32")]
        public static extern int GetModuleFileName(IntPtr hModule, StringBuilder lpFileName, int nSize);
        [DllImport("kernel32")]
        public static extern int GetModuleHandle(string lpModuleName);
        [DllImport("kernel32")]
        public static extern int GetNamedPipeHandleState(IntPtr hNamedPipe, ref int lpState, ref int lpCurInstances, ref int lpMaxCollectionCount, ref int lpCollectDataTimeout, string lpUserName, int nMaxUserNameSize);
        [DllImport("kernel32")]
        public static extern int GetNamedPipeInfo(IntPtr hNamedPipe, ref int lpFlags, ref int lpOutBufferSize, ref int lpInBufferSize, ref int lpMaxInstances);
        [DllImport("kernel32")]
        public static extern int GetNumberFormat(int Locale, int dwFlags, string lpValue, ref NUMBERFMT lpFormat, string lpNumberStr, int cchNumber);
        [DllImport("kernel32")]
        public static extern int GetNumberOfConsoleInputEvents(IntPtr hConsoleInput, ref int lpNumberOfEvents);
        [DllImport("kernel32")]
        public static extern int GetNumberOfConsoleMouseButtons(int lpNumberOfMouseButtons);
        [DllImport("kernel32")]
        public static extern int GetOEMCP();
        [DllImport("kernel32")]
        public static extern int GetOverlappedResult(IntPtr hFile, ref OVERLAPPED lpOverlapped, ref int lpNumberOfBytesTransferred, int bWait);
        [DllImport("kernel32")]
        public static extern int GetPriorityClass(IntPtr hProcess);
        [DllImport("kernel32")]
        public static extern int GetPrivateProfileString(string lpApplicationName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
        [DllImport("kernel32")]
        public static extern int GetProcessAffinityMask(IntPtr hProcess, ref int lpProcessAffinityMask, int SystemAffinityMask);
        [DllImport("kernel32")]
        public static extern int GetProcessHeap();
        [DllImport("kernel32")]
        public static extern int GetProcessHeaps(int NumberOfHeaps, int ProcessHeaps);
        [DllImport("kernel32")]
        public static extern int GetProcessShutdownParameters(int lpdwLevel, ref int lpdwFlags);
        [DllImport("kernel32")]
        public static extern int GetProcessTimes(IntPtr hProcess, ref Com.FILETIME lpCreationTime, ref Com.FILETIME lpExitTime, ref Com.FILETIME lpKernelTime, ref Com.FILETIME lpUserTime);
        [DllImport("kernel32")]
        public static extern int GetProcessWorkingSetSize(IntPtr hProcess, ref int lpMinimumWorkingSetSize, ref int lpMaximumWorkingSetSize);
        [DllImport("kernel32")]
        public static extern int GetProfileInt(string lpAppName, string lpKeyName, int nDefault);
        [DllImport("kernel32")]
        public static extern int GetProfileSection(string lpAppName, StringBuilder lpReturnedString, int nSize);
        [DllImport("kernel32")]
        public static extern int GetProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize);
        [DllImport("kernel32")]
        public static extern int GetQueuedCompletionStatus(int CompletionPort, ref int lpNumberOfBytesTransferred, ref int lpCompletionKey, ref int lpOverlapped, int dwMilliseconds);
        [DllImport("kernel32")]
        public static extern int GetShortPathName(string lpszLongPath, StringBuilder lpszShortPath, int cchBuffer);
        [DllImport("kernel32")]
        public static extern int GetStdHandle(int nStdHandle);
        [DllImport("kernel32")]
        public static extern int GetStringTypeA(int lcid, int dwInfoType, string lpSrcStr, int cchSrc, ref int lpCharType);
        [DllImport("kernel32")]
        public static extern int GetStringTypeEx(int Locale, int dwInfoType, string lpSrcStr, int cchSrc, short lpCharType);
        [DllImport("kernel32")]
        public static extern int GetStringTypeW(int dwInfoType, string lpSrcStr, int cchSrc, short lpCharType);
        [DllImport("kernel32")]
        public static extern int GetSystemDefaultLCID();
        [DllImport("kernel32")]
        public static extern int GetSystemDirectory(StringBuilder lpBuffer, int nSize);
        [DllImport("kernel32")]
        public static extern int GetSystemPowerStatus(ref SYSTEM_POWER_STATUS lpSystemPowerStatus);
        [DllImport("kernel32")]
        public static extern int GetSystemTimeAdjustment(int lpTimeAdjustment, ref int lpTimeIncrement, ref int lpTimeAdjustmentDisabled);
        [DllImport("kernel32")]
        public static extern int GetTapeParameters(IntPtr hDevice, int dwOperation, ref int lpdwSize, IntPtr lpTapeInformation);
        [DllImport("kernel32")]
        public static extern int GetTapePosition(IntPtr hDevice, int dwPositionType, ref int lpdwPartition, ref int lpdwOffsetLow, ref int lpdwOffsetHigh);
        [DllImport("kernel32")]
        public static extern int GetTapeStatus(IntPtr hDevice);
        [DllImport("kernel32")]
        public static extern int GetTempFileName(string lpszPath, string lpPrefixString, int wUnique, StringBuilder lpTempFileName);
        [DllImport("kernel32")]
        public static extern int GetTempPath(int nBufferLength, StringBuilder lpBuffer);
        [DllImport("kernel32")]
        public static extern int GetThreadContext(IntPtr hThread, ref CONTEXT lpContext);
        [DllImport("kernel32")]
        public static extern int GetThreadPriority(IntPtr hThread);
        [DllImport("kernel32")]
        public static extern int GetThreadSelectorEntry(IntPtr hThread, int dwSelector, ref LDT_ENTRY lpSelectorEntry);
        [DllImport("kernel32")]
        public static extern int GetThreadTimes(IntPtr hThread, ref Com.FILETIME lpCreationTime, ref Com.FILETIME lpExitTime, ref Com.FILETIME lpKernelTime, ref Com.FILETIME lpUserTime);
        [DllImport("kernel32")]
        public static extern int GetTickCount();
        [DllImport("kernel32")]
        public static extern int GetTimeFormat(int Locale, int dwFlags, ref SYSTEMTIME lpTime, string lpFormat, string lpTimeStr, int cchTime);
        [DllImport("kernel32")]
        public static extern int GetTimeZoneInformation(ref TIME_ZONE_INFORMATION lpTimeZoneInformation);
        [DllImport("kernel32")]
        public static extern int GetUserDefaultLCID();
        [DllImport("kernel32")]
        public static extern int GetVersion();
        [DllImport("kernel32")]
        public static extern int GetVersionEx(ref OSVERSIONINFO lpVersionInformation);
        [DllImport("kernel32")]
        public static extern IntPtr GlobalAlloc(int wFlags, int dwBytes);
        [DllImport("kernel32")]
        public static extern int GlobalCompact(int dwMinFree);
        [DllImport("kernel32")]
        public static extern int GlobalFlags(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern int GlobalFree(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern int GlobalGetAtomName(short nAtom, StringBuilder lpBuffer, int nSize);
        [DllImport("kernel32")]
        public static extern int GlobalHandle(IntPtr wMem);
        [DllImport("kernel32")]
        public static extern IntPtr GlobalLock(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern IntPtr GlobalReAlloc(IntPtr hMem, int dwBytes, int wFlags);
        [DllImport("kernel32")]
        public static extern int GlobalSize(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern int GlobalUnWire(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern int GlobalUnlock(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern int GlobalWire(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern IntPtr HeapAlloc(IntPtr hHeap, int dwFlags, int dwBytes);
        [DllImport("kernel32")]
        public static extern int HeapCompact(IntPtr hHeap, int dwFlags);
        [DllImport("kernel32")]
        public static extern IntPtr HeapCreate(int flOptions, int dwInitialSize, int dwMaximumSize);
        [DllImport("kernel32")]
        public static extern int HeapDestroy(IntPtr hHeap);
        [DllImport("kernel32")]
        public static extern int HeapFree(IntPtr hHeap, int dwFlags, IntPtr lpMem);
        [DllImport("kernel32")]
        public static extern IntPtr HeapLock(IntPtr hHeap);
        [DllImport("kernel32")]
        public static extern int HeapReAlloc(IntPtr hHeap, int dwFlags, IntPtr lpMem, int dwBytes);
        [DllImport("kernel32")]
        public static extern int HeapSize(IntPtr hHeap, int dwFlags, IntPtr lpMem);
        [DllImport("kernel32")]
        public static extern int HeapUnlock(IntPtr hHeap);
        [DllImport("kernel32")]
        public static extern int HeapValidate(IntPtr hHeap, int dwFlags, IntPtr lpMem);
        [DllImport("kernel32")]
        public static extern int InitAtomTable(int nSize);
        [DllImport("kernel32")]
        public static extern int InterlockedDecrement(int lpAddend);
        [DllImport("kernel32")]
        public static extern int InterlockedExchange(int Target, int Value);
        [DllImport("kernel32")]
        public static extern int InterlockedIncrement(int lpAddend);
        [DllImport("kernel32")]
        public static extern int IsBadCodePtr(int lpfn);
        [DllImport("kernel32")]
        public static extern int IsBadHugeReadPtr(IntPtr lp, int ucb);
        [DllImport("kernel32")]
        public static extern int IsBadHugeWritePtr(IntPtr lp, int ucb);
        [DllImport("kernel32")]
        public static extern int IsBadReadPtr(IntPtr lp, int ucb);
        [DllImport("kernel32")]
        public static extern int IsBadStringPtr(string lpsz, int ucchMax);
        [DllImport("kernel32")]
        public static extern int IsBadWritePtr(IntPtr lp, int ucb);
        [DllImport("kernel32")]
        public static extern int IsDBCSLeadByte(Byte bTestChar);
        [DllImport("kernel32")]
        public static extern int IsValidCodePage(int CodePage);
        [DllImport("kernel32")]
        public static extern int LCMapString(int Locale, int dwMapFlags, string lpSrcStr, int cchSrc, string lpDestStr, int cchDest);
        [DllImport("kernel32")]
        public static extern IntPtr LoadLibraryEx(string lpLibFileName, IntPtr hFile, int dwFlags);
        [DllImport("kernel32")]
        public static extern IntPtr LoadModule(string lpModuleName, IntPtr lpParameterBlock);
        [DllImport("kernel32")]
        public static extern IntPtr LocalAlloc(int wFlags, int wBytes);
        [DllImport("kernel32")]
        public static extern int LocalCompact(int uMinFree);
        [DllImport("kernel32")]
        public static extern int LocalFileTimeToFileTime(ref Com.FILETIME lpLocalFileTime, ref Com.FILETIME lpFileTime);
        [DllImport("kernel32")]
        public static extern int LocalFlags(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern int LocalFree(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern int LocalHandle(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern IntPtr LocalLock(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern int LocalReAlloc(IntPtr hMem, int wBytes, int wFlags);
        [DllImport("kernel32")]
        public static extern int LocalShrink(IntPtr hMem, int cbNewSize);
        [DllImport("kernel32")]
        public static extern int LocalSize(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern int LocalUnlock(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern int LockFile(IntPtr hFile, int dwFileOffsetLow, int dwFileOffsetHigh, int nNumberOfBytesToLockLow, int nNumberOfBytesToLockHigh);
        [DllImport("kernel32")]
        public static extern int LockFileEx(IntPtr hFile, int dwFlags, int dwReserved, int nNumberOfBytesToLockLow, int nNumberOfBytesToLockHigh, ref OVERLAPPED lpOverlapped);
        [DllImport("kernel32")]
        public static extern int MapViewOfFile(IntPtr hFileMappingObject, int dwDesiredAccess, int dwFileOffsetHigh, int dwFileOffsetLow, int dwNumberOfBytesToMap);
        [DllImport("kernel32")]
        public static extern int MapViewOfFileEx(IntPtr hFileMappingObject, int dwDesiredAccess, int dwFileOffsetHigh, int dwFileOffsetLow, int dwNumberOfBytesToMap, IntPtr lpBaseAddress);
        [DllImport("kernel32")]
        public static extern int MoveFile(string lpExistingFileName, string lpNewFileName);
        [DllImport("kernel32")]
        public static extern int MoveFileEx(string lpExistingFileName, string lpNewFileName, int dwFlags);
        [DllImport("kernel32")]
        public static extern int MulDiv(int nNumber, int nNumerator, int nDenominator);
        [DllImport("kernel32")]
        public static extern int MultiByteToWideChar(int CodePage, int dwFlags, string lpMultiByteStr, int cchMultiByte, string lpWideCharStr, int cchWideChar);
        [DllImport("kernel32")]
        public static extern IntPtr OpenEvent(int dwDesiredAccess, int bInheritHandle, string lpName);
        [DllImport("kernel32")]
        public static extern IntPtr OpenFile(string lpFileName, ref OFSTRUCT lpReOpenBuff, int wStyle);
        [DllImport("kernel32")]
        public static extern IntPtr OpenFileMapping(int dwDesiredAccess, int bInheritHandle, string lpName);
        [DllImport("kernel32")]
        public static extern IntPtr OpenMutex(int dwDesiredAccess, int bInheritHandle, string lpName);
        [DllImport("kernel32")]
        public static extern IntPtr OpenProcess(int dwDesiredAccess, int bInheritHandle, int dwProcessId);
        [DllImport("kernel32")]
        public static extern IntPtr OpenSemaphore(int dwDesiredAccess, int bInheritHandle, string lpName);
        [DllImport("kernel32")]
        public static extern int PeekNamedPipe(IntPtr hNamedPipe, IntPtr lpBuffer, int nBufferSize, ref int lpBytesRead, ref int lpTotalBytesAvail, ref int lpBytesLeftThisMessage);
        [DllImport("kernel32")]
        public static extern int PrepareTape(IntPtr hDevice, int dwOperation, int bimmediate);
        [DllImport("kernel32")]
        public static extern int PulseEvent(IntPtr hEvent);
        [DllImport("kernel32")]
        public static extern int PurgeComm(IntPtr hFile, int dwFlags);
        [DllImport("kernel32")]
        public static extern int QueryDosDevice(string lpDeviceName, string lpTargetPath, int ucchMax);
        [DllImport("kernel32")]
        public static extern int QueryPerformanceCounter(ref LARGE_INTEGER lpPerformanceCount);
        [DllImport("kernel32")]
        public static extern int QueryPerformanceFrequency(ref LARGE_INTEGER lpFrequency);
        [DllImport("kernel32")]
        public static extern int ReadConsole(IntPtr hConsoleInput, IntPtr lpBuffer, int nNumberOfCharsToRead, ref int lpNumberOfCharsRead, IntPtr lpReserved);
        [DllImport("kernel32")]
        public static extern int ReadConsoleOutput(IntPtr hConsoleOutput, ref CHAR_INFO lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, ref SMALL_RECT lpReadRegion);
        [DllImport("kernel32")]
        public static extern int ReadConsoleOutputAttribute(IntPtr hConsoleOutput, ref int lpAttribute, int nLength, COORD dwReadCoord, ref int lpNumberOfAttrsRead);
        [DllImport("kernel32")]
        public static extern int ReadConsoleOutputCharacter(IntPtr hConsoleOutput, string lpCharacter, int nLength, COORD dwReadCoord, ref int lpNumberOfCharsRead);
        [DllImport("kernel32")]
        public static extern int ReadFile(IntPtr hFile, byte[] lpBuffer, int nNumberOfBytesToRead, ref int lpNumberOfBytesRead, ref OVERLAPPED lpOverlapped);
        [DllImport("kernel32")]
        public static extern int ReadFile(IntPtr hFile, IntPtr lpBuffer, int nNumberOfBytesToRead, ref int lpNumberOfBytesRead, IntPtr lpOverlapped);
        [DllImport("kernel32")]
        public static extern int ReadFileEx(IntPtr hFile, byte[] lpBuffer, int nNumberOfBytesToRead, ref OVERLAPPED lpOverlapped, ref int lpCompletionRoutine);
        [DllImport("kernel32")]
        public static extern int ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, IntPtr lpBuffer, int nSize, ref int lpNumberOfBytesWritten);
        [DllImport("kernel32")]
        public static extern int ReleaseMutex(IntPtr hMutex);
        [DllImport("kernel32")]
        public static extern int ReleaseSemaphore(IntPtr hSemaphore, int lReleaseCount, ref int lpPreviousCount);
        [DllImport("kernel32")]
        public static extern int RemoveDirectory(string lpPathName);
        [DllImport("kernel32")]
        public static extern int ResetEvent(IntPtr hEvent);
        [DllImport("kernel32")]
        public static extern int ResumeThread(IntPtr hThread);
        [DllImport("kernel32")]
        public static extern int ScrollConsoleScreenBuffer(IntPtr hConsoleOutput, ref SMALL_RECT lpScrollRectangle, ref SMALL_RECT lpClipRectangle, COORD dwDestinationOrigin, ref CHAR_INFO lpFill);
        [DllImport("kernel32")]
        public static extern int SearchPath(string lpPath, string lpFileName, string lpExtension, int nBufferLength, StringBuilder lpBuffer, string lpFilePart);
        [DllImport("kernel32")]
        public static extern int SetCommBreak(int nCid);
        [DllImport("kernel32")]
        public static extern int SetCommConfig(IntPtr hCommDev, ref COMMCONFIG lpCC, int dwSize);
        [DllImport("kernel32")]
        public static extern int SetCommMask(IntPtr hFile, int dwEvtMask);
        [DllImport("kernel32")]
        public static extern int SetCommState(IntPtr hCommDev, ref DCB lpDCB);
        [DllImport("kernel32")]
        public static extern int SetCommTimeouts(IntPtr hFile, ref COMMTIMEOUTS lpCommTimeouts);
        [DllImport("kernel32")]
        public static extern int SetComputerName(string lpComputerName);
        [DllImport("kernel32")]
        public static extern int SetConsoleActiveScreenBuffer(IntPtr hConsoleOutput);
        [DllImport("kernel32")]
        public static extern int SetConsoleCP(int wCodePageID);
        [DllImport("kernel32")]
        public static extern int SetConsoleCtrlHandler(int HandlerRoutine, int Add);
        [DllImport("kernel32")]
        public static extern int SetConsoleCursorInfo(IntPtr hConsoleOutput, ref CONSOLE_CURSOR_INFO lpConsoleCursorInfo);
        [DllImport("kernel32")]
        public static extern int SetConsoleCursorPosition(IntPtr hConsoleOutput, COORD dwCursorPosition);
        [DllImport("kernel32")]
        public static extern int SetConsoleMode(IntPtr hConsoleHandle, int dwMode);
        [DllImport("kernel32")]
        public static extern int SetConsoleOutputCP(int wCodePageID);
        [DllImport("kernel32")]
        public static extern int SetConsoleScreenBufferSize(IntPtr hConsoleOutput, COORD dwSize);
        [DllImport("kernel32")]
        public static extern int SetConsoleTextAttribute(IntPtr hConsoleOutput, int wAttributes);
        [DllImport("kernel32")]
        public static extern int SetConsoleTitle(string lpConsoleTitle);
        [DllImport("kernel32")]
        public static extern int SetConsoleWindowInfo(IntPtr hConsoleOutput, int bAbsolute, ref SMALL_RECT lpConsoleWindow);
        [DllImport("kernel32")]
        public static extern int SetCurrentDirectory(string lpPathName);
        [DllImport("kernel32")]
        public static extern int SetDefaultCommConfig(string lpszName, ref COMMCONFIG lpCC, int dwSize);
        [DllImport("kernel32")]
        public static extern int SetEndOfFile(IntPtr hFile);
        [DllImport("kernel32")]
        public static extern int SetEnvironmentVariable(string lpName, string lpValue);
        [DllImport("kernel32")]
        public static extern int SetErrorMode(int wMode);
        [DllImport("kernel32")]
        public static extern int SetEvent(IntPtr hEvent);
        [DllImport("kernel32")]
        public static extern int SetFileAttributes(string lpFileName, int dwFileAttributes);
        [DllImport("kernel32")]
        public static extern int SetFilePointer(IntPtr hFile, int lDistanceToMove, ref int lpDistanceToMoveHigh, int dwMoveMethod);
        [DllImport("kernel32")]
        public static extern int SetFileTime(IntPtr hFile, ref Com.FILETIME lpCreationTime, ref Com.FILETIME lpLastAccessTime, ref Com.FILETIME lpLastWriteTime);
        [DllImport("kernel32")]
        public static extern int SetHandleCount(int wNumber);
        [DllImport("kernel32")]
        public static extern int SetHandleInformation(IntPtr hObject, int dwMask, int dwFlags);
        [DllImport("kernel32")]
        public static extern int SetLocalTime(ref SYSTEMTIME lpSystemTime);
        [DllImport("kernel32")]
        public static extern int SetLocaleInfo(int Locale, int LCType, string lpLCData);
        [DllImport("kernel32")]
        public static extern int SetMailslotInfo(IntPtr hMailslot, int lReadTimeout);
        [DllImport("kernel32")]
        public static extern int SetNamedPipeHandleState(IntPtr hNamedPipe, ref int lpMode, ref int lpMaxCollectionCount, ref int lpCollectDataTimeout);
        [DllImport("kernel32")]
        public static extern int SetPriorityClass(IntPtr hProcess, int dwPriorityClass);
        [DllImport("kernel32")]
        public static extern int SetProcessShutdownParameters(int dwLevel, int dwFlags);
        [DllImport("kernel32")]
        public static extern int SetProcessWorkingSetSize(IntPtr hProcess, int dwMinimumWorkingSetSize, int dwMaximumWorkingSetSize);
        [DllImport("kernel32")]
        public static extern int SetStdHandle(int nStdHandle, int nHandle);
        [DllImport("kernel32")]
        public static extern int SetSystemPowerState(int fSuspend, int fForce);
        [DllImport("kernel32")]
        public static extern int SetSystemTime(ref SYSTEMTIME lpSystemTime);
        [DllImport("kernel32")]
        public static extern int SetTapeParameters(IntPtr hDevice, int dwOperation, IntPtr lpTapeInformation);
        [DllImport("kernel32")]
        public static extern int SetTapePosition(IntPtr hDevice, int dwPositionMethod, int dwPartition, int dwOffsetLow, int dwOffsetHigh, int bimmediate);
        [DllImport("kernel32")]
        public static extern int SetThreadAffinityMask(IntPtr hThread, int dwThreadAffinityMask);
        [DllImport("kernel32")]
        public static extern int SetThreadContext(IntPtr hThread, ref CONTEXT lpContext);
        [DllImport("kernel32")]
        public static extern int SetThreadLocale(int Locale);
        [DllImport("kernel32")]
        public static extern int SetThreadPriority(IntPtr hThread, int nPriority);
        [DllImport("kernel32")]
        public static extern int SetTimeZoneInformation(ref TIME_ZONE_INFORMATION lpTimeZoneInformation);
        [DllImport("kernel32")]
        public static extern int SetUnhandledExceptionFilter(int lpTopLevelExceptionFilter);
        [DllImport("kernel32")]
        public static extern int SetVolumeLabel(string lpRootPathName, string lpVolumeName);
        [DllImport("kernel32")]
        public static extern int SetupComm(IntPtr hFile, int dwInQueue, int dwOutQueue);
        [DllImport("kernel32")]
        public static extern int SizeofResource(IntPtr hInstance, IntPtr hResInfo);
        [DllImport("kernel32")]
        public static extern int SleepEx(int dwMilliseconds, int bAlertable);
        [DllImport("kernel32")]
        public static extern int SuspendThread(IntPtr hThread);
        [DllImport("kernel32")]
        public static extern int SystemTimeToFileTime(ref SYSTEMTIME lpSystemTime, ref Com.FILETIME lpFileTime);
        [DllImport("kernel32")]
        public static extern int SystemTimeToTzSpecificLocalTime(ref TIME_ZONE_INFORMATION lpTimeZoneInformation, ref SYSTEMTIME lpUniversalTime, ref SYSTEMTIME lpLocalTime);
        [DllImport("kernel32")]
        public static extern int TerminateProcess(IntPtr hProcess, int uExitCode);
        [DllImport("kernel32")]
        public static extern int TerminateThread(IntPtr hThread, int dwExitCode);
        [DllImport("kernel32")]
        public static extern int TlsAlloc();
        [DllImport("kernel32")]
        public static extern int TlsFree(int dwTlsIndex);
        [DllImport("kernel32")]
        public static extern int TlsGetValue(int dwTlsIndex);
        [DllImport("kernel32")]
        public static extern int TlsSetValue(int dwTlsIndex, IntPtr lpTlsValue);
        [DllImport("kernel32")]
        public static extern int TransactNamedPipe(IntPtr hNamedPipe, IntPtr lpInBuffer, int nInBufferSize, IntPtr lpOutBuffer, int nOutBufferSize, ref int lpBytesRead, ref OVERLAPPED lpOverlapped);
        [DllImport("kernel32")]
        public static extern int TransmitCommChar(int nCid, Byte cChar);
        [DllImport("kernel32")]
        public static extern int UnhandledExceptionFilter(ref EXCEPTION_POINTERS ExceptionInfo);
        [DllImport("kernel32")]
        public static extern int UnlockFile(IntPtr hFile, int dwFileOffsetLow, int dwFileOffsetHigh, int nNumberOfBytesToUnlockLow, int nNumberOfBytesToUnlockHigh);
        [DllImport("kernel32")]
        public static extern int UnlockFileEx(IntPtr hFile, int dwReserved, int nNumberOfBytesToUnlockLow, int nNumberOfBytesToUnlockHigh, ref OVERLAPPED lpOverlapped);
        [DllImport("kernel32")]
        public static extern int UnmapViewOfFile(IntPtr lpBaseAddress);
        [DllImport("kernel32")]
        public static extern int UpdateResource(IntPtr hUpdate, string lpType, string lpName, int wLanguage, IntPtr lpData, int cbData);
        [DllImport("kernel32")]
        public static extern int UpdateResource(IntPtr hUpdate, IntPtr lpType, string lpName, int wLanguage, IntPtr lpData, int cbData);
        [DllImport("kernel32")]
        public static extern int UpdateResource(IntPtr hUpdate, IntPtr lpType, IntPtr lpName, int wLanguage, IntPtr lpData, int cbData);
        [DllImport("kernel32")]
        public static extern int UpdateResource(IntPtr hUpdate, string lpType, IntPtr lpName, int wLanguage, IntPtr lpData, int cbData);
        [DllImport("kernel32")]
        public static extern int VerLanguageName(int wLang, string szLang, int nSize);
        [DllImport("kernel32")]
        public static extern IntPtr VirtualAlloc(IntPtr lpAddress, int dwSize, int flAllocationType, int flProtect);
        [DllImport("kernel32")]
        public static extern int VirtualFree(IntPtr lpAddress, int dwSize, int dwFreeType);
        [DllImport("kernel32")]
        public static extern int VirtualLock(IntPtr lpAddress, int dwSize);
        [DllImport("kernel32")]
        public static extern int VirtualProtect(IntPtr lpAddress, int dwSize, int flNewProtect, ref int lpflOldProtect);
        [DllImport("kernel32")]
        public static extern int VirtualProtectEx(IntPtr hProcess, IntPtr lpAddress, int dwSize, int flNewProtect, ref int lpflOldProtect);
        [DllImport("kernel32")]
        public static extern int VirtualQuery(IntPtr lpAddress, ref MEMORY_BASIC_INFORMATION lpBuffer, int dwLength);
        [DllImport("kernel32")]
        public static extern int VirtualQueryEx(IntPtr hProcess, IntPtr lpAddress, ref MEMORY_BASIC_INFORMATION lpBuffer, int dwLength);
        [DllImport("kernel32")]
        public static extern int VirtualUnlock(IntPtr lpAddress, int dwSize);
        [DllImport("kernel32")]
        public static extern int WaitCommEvent(IntPtr hFile, ref int lpEvtMask, ref OVERLAPPED lpOverlapped);
        [DllImport("kernel32")]
        public static extern int WaitForMultipleObjects(int nCount, ref int lpHandles, int bWaitAll, int dwMilliseconds);
        [DllImport("kernel32")]
        public static extern int WaitForMultipleObjectsEx(int nCount, ref int lpHandles, int bWaitAll, int dwMilliseconds, int bAlertable);
        [DllImport("kernel32")]
        public static extern int WaitForSingleObject(IntPtr hHandle, int dwMilliseconds);
        [DllImport("kernel32")]
        public static extern int WaitForSingleObjectEx(IntPtr hHandle, int dwMilliseconds, int bAlertable);
        [DllImport("kernel32")]
        public static extern int WaitNamedPipe(string lpNamedPipeName, int nTimeOut);
        [DllImport("kernel32")]
        public static extern int WideCharToMultiByte(int CodePage, int dwFlags, string lpWideCharStr, int cchWideChar, string lpMultiByteStr, int cchMultiByte, string lpDefaultChar, ref int lpUsedDefaultChar);
        [DllImport("kernel32")]
        public static extern int WinExec(string lpCmdLine, int nCmdShow);
        [DllImport("kernel32")]
        public static extern int WriteConsole(IntPtr hConsoleOutput, IntPtr lpBuffer, int nNumberOfCharsToWrite, ref int lpNumberOfCharsWritten, IntPtr lpReserved);
        [DllImport("kernel32")]
        public static extern int WriteConsoleOutput(IntPtr hConsoleOutput, ref CHAR_INFO lpBuffer, COORD dwBufferSize, COORD dwBufferCoord, ref SMALL_RECT lpWriteRegion);
        [DllImport("kernel32")]
        public static extern int WriteConsoleOutputAttribute(IntPtr hConsoleOutput, short lpAttribute, int nLength, COORD dwWriteCoord, ref int lpNumberOfAttrsWritten);
        [DllImport("kernel32")]
        public static extern int WriteConsoleOutputCharacter(IntPtr hConsoleOutput, string lpCharacter, int nLength, COORD dwWriteCoord, ref int lpNumberOfCharsWritten);
        [DllImport("kernel32")]
        public static extern int WriteFile(IntPtr hFile, byte[] lpBuffer, int nNumberOfBytesToWrite, ref int lpNumberOfBytesWritten, ref OVERLAPPED lpOverlapped);
        [DllImport("kernel32")]
        public static extern int WriteFileEx(IntPtr hFile, byte[] lpBuffer, int nNumberOfBytesToWrite, ref OVERLAPPED lpOverlapped, ref int lpCompletionRoutine);
        [DllImport("kernel32")]
        public static extern int WritePrivateProfileSection(string lpAppName, string lpString, string lpFileName);
        [DllImport("kernel32")]
        public static extern int WritePrivateProfileString(string lpApplicationName, IntPtr lpKeyName, IntPtr lpString, string lpFileName);
        [DllImport("kernel32")]
        public static extern int WritePrivateProfileString(string lpApplicationName, string lpKeyName, IntPtr lpString, string lpFileName);
        [DllImport("kernel32")]
        public static extern int WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, IntPtr lpBuffer, int nSize, ref int lpNumberOfBytesWritten);
        [DllImport("kernel32")]
        public static extern int WriteProfileSection(string lpAppName, string lpString);
        [DllImport("kernel32")]
        public static extern int WriteProfileString(string lpszSection, string lpszKeyName, string lpszString);
        [DllImport("kernel32")]
        public static extern int WriteTapemark(IntPtr hDevice, int dwTapemarkType, int dwTapemarkCount, int bimmediate);
        [DllImport("kernel32")]
        public static extern int hread(IntPtr hFile, IntPtr lpBuffer, int lBytes);
        [DllImport("kernel32")]
        public static extern int hwrite(IntPtr hFile, StringBuilder lpBuffer, int lBytes);
        [DllImport("kernel32")]
        public static extern int lclose(IntPtr hFile);
        [DllImport("kernel32")]
        public static extern int lcreat(string lpPathName, int iAttribute);
        [DllImport("kernel32")]
        public static extern int llseek(IntPtr hFile, int lOffset, int iOrigin);
        [DllImport("kernel32")]
        public static extern int lopen(string lpPathName, int iReadWrite);
        [DllImport("kernel32")]
        public static extern int lread(IntPtr hFile, IntPtr lpBuffer, int wBytes);
        [DllImport("kernel32")]
        public static extern int lstrcat(string lpString1, string lpString2);
        [DllImport("kernel32")]
        public static extern int lstrcmp(string lpString1, string lpString2);
        [DllImport("kernel32")]
        public static extern int lstrcmpi(string lpString1, string lpString2);
        [DllImport("kernel32")]
        public static extern int lstrcpy(string lpString1, string lpString2);
        [DllImport("kernel32")]
        public static extern int lstrcpyn(string lpString1, string lpString2, int iMaxLength);
        [DllImport("kernel32")]
        public static extern int lstrlen(string lpString);
        [DllImport("kernel32")]
        public static extern int lwrite(IntPtr hFile, StringBuilder lpBuffer, int wBytes);
        [DllImport("kernel32")]
        public static extern short GetSystemDefaultLangID();
        [DllImport("kernel32")]
        public static extern short GetUserDefaultLangID();
        [DllImport("kernel32")]
        public static extern short GlobalAddAtom(string lpString);
        [DllImport("kernel32")]
        public static extern short GlobalDeleteAtom(short nAtom);
        [DllImport("kernel32")]
        public static extern short GlobalFindAtom(string lpString);
        [DllImport("kernel32")]
        public static extern string GetEnvironmentStrings();
        [DllImport("kernel32")]
        public static extern void CopyMemory(IntPtr Destination, IntPtr Source, int Length);
        [DllImport("kernel32")]
        public static extern void DebugBreak();
        [DllImport("kernel32")]
        public static extern void DeleteCriticalSection(ref CRITICAL_SECTION lpCriticalSection);
        [DllImport("kernel32")]
        public static extern void EnterCriticalSection(ref CRITICAL_SECTION lpCriticalSection);
        [DllImport("kernel32")]
        public static extern void ExitThread(int dwExitCode);
        [DllImport("kernel32")]
        public static extern void FatalAppExit(int uAction, string lpMessageText);
        [DllImport("kernel32")]
        public static extern void FatalExit(int code);
        [DllImport("kernel32")]
        public static extern void FreeLibraryAndExitThread(IntPtr hLibModule, int dwExitCode);
        [DllImport("kernel32")]
        public static extern void GetLocalTime(ref SYSTEMTIME lpSystemTime);
        [DllImport("kernel32")]
        public static extern void GetStartupInfo(ref STARTUPINFO lpStartupInfo);
        [DllImport("kernel32")]
        public static extern void GetSystemInfo(ref SYSTEM_INFO lpSystemInfo);
        [DllImport("kernel32")]
        public static extern void GetSystemTime(ref SYSTEMTIME lpSystemTime);
        [DllImport("kernel32")]
        public static extern void GlobalFix(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern void GlobalUnfix(IntPtr hMem);
        [DllImport("kernel32")]
        public static extern void InitializeCriticalSection(ref CRITICAL_SECTION lpCriticalSection);
        [DllImport("kernel32")]
        public static extern void LeaveCriticalSection(ref CRITICAL_SECTION lpCriticalSection);
        [DllImport("kernel32")]
        public static extern void RaiseException(int dwExceptionCode, int dwExceptionFlags, int nNumberOfArguments, ref int lpArguments);
        [DllImport("kernel32")]
        public static extern void SetFileApisToANSI();
        [DllImport("kernel32")]
        public static extern void SetFileApisToOEM();
        [DllImport("kernel32")]
        public static extern void SetLastError(int dwErrCode);
        [DllImport("kernel32")]
        public static extern void Sleep(int dwMilliseconds);
        [DllImport("kernel32")]
        public static extern int GetComputerNameW(IntPtr lpBuffer, int nSize);
        [DllImport("kernel32")]
        public static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName);
        #endregion

        #region User32
        [DllImport("user32.dll")]
        public static extern IntPtr LoadBitmap(IntPtr hinst, IntPtr id);

        [DllImport("user32.dll")]
        public static extern IntPtr LoadImage(IntPtr hinst,
            string lpszName,
            int uType,
            int cxDesired,
            int cyDesired,
            int fuLoad
            );

        [DllImport("User32.dll")]
        public static extern bool GetComboBoxInfo(IntPtr hwndCombo, ref COMBOBOXINFO info);

        [DllImport("user32.dll")]
        public static extern IntPtr GetForegroundWindow();

        [DllImport("User32.Dll")]
        public static extern System.Int32 TrackPopupMenuEx(System.IntPtr hMenu,
            System.Int32 uFlags,
            System.Int32 x,
            System.Int32 y,
            System.IntPtr hWnd,
            System.IntPtr ignore);

        [DllImport("User32.Dll")]
        public static extern System.Int32 GetCursorPos(ref POINT point);

        [DllImport("User32.Dll")]
        public static extern System.Int32 SetForegroundWindow(System.IntPtr hWnd);

        [DllImport("user32.dll")]
        public static extern IntPtr SetClassLong(System.IntPtr hWnd, int nIndex, IntPtr dwNewLong);

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern int ChangeDisplaySettings(
            [In] DEVMODE lpDevMode,     // graphics mode
            int dwflags            // graphics mode options
            );


        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern int EnumDisplaySettings(
            string lpszDeviceName,  // display device
            int iModeNum,          // graphics mode
            [In, Out] DEVMODE lpDevMode      // graphics mode settings
            );


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr CreateWindowEx(
            int dwExStyle,      // extended window style
            string lpClassName,  // registered class name
            string lpWindowName, // window name
            int dwStyle,        // window style
            int x,                // horizontal position of window
            int y,                // vertical position of window
            int nWidth,           // window width
            int nHeight,          // window height
            IntPtr hWndParent,      // handle to parent or owner window
            IntPtr hMenu,          // menu handle or child identifier
            IntPtr hInstance,  // handle to application instance
            int lpParam        // window-creation data
            );


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool DestroyWindow(IntPtr hWnd);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool DispatchMessage(ref MSG msg);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool GetMessage(ref MSG msg, int hWnd, int wFilterMin, int wFilterMax);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr GetWindowLong(IntPtr hWnd, int nIndex);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool GetWindowRect(
            IntPtr hWnd,      // handle to window
            ref RECT lpRect   // window coordinates
            );


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int MessageBox(int h, string m, string c, int type);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int MoveWindow(
            IntPtr hWnd,      // handle to window
            int X,          // horizontal position
            int Y,          // vertical position
            int nWidth,     // width
            int nHeight,    // height
            bool bRepaint   // repaint option
            );


        public delegate IntPtr WndProcCallBack(IntPtr hwnd, int Msg, IntPtr wParam, IntPtr lParam);

        [DllImport("User32.dll")]
        public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, WndProcCallBack wndProcCallBack);
        [DllImport("User32.dll")]
        public static extern IntPtr CallWindowProc(IntPtr prevWndFunc, IntPtr hWnd, int iMsg, IntPtr wParam, IntPtr lParam);

        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool PeekMessage(ref MSG msg, int hWnd, int wFilterMin, int wFilterMax, int wFlag);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, IntPtr lParam);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool RedrawWindow(IntPtr hWnd, ref RECT lprcUpdate, IntPtr hrgnUpdate, int flags);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, IntPtr lParam);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, ref REBARINFO lParam);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, ref REBARBANDINFO lParam);

        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, ref RBHITTESTINFO lParam);

        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, ref COLORSCHEME lParam);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, COLORREF lParam);

        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr SendMessage(IntPtr Handle, int Msg, IntPtr wParam, ref HDITEM lParam);

        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, ref RECT lParam);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, ref MARGINS lParam);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, ref TBMETRICS lParam);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, IntPtr dwNewLong);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, int uFlags);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool TranslateMessage(ref MSG msg);


        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool WaitMessage();

        [DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto)]
        public static extern IntPtr GetParent(IntPtr hWnd);


        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, ref POINT lParam);


        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref TBBUTTON lParam);


        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref TBBUTTONINFO lParam);


        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr SetWindowsHookEx(int hookid, HookProc pfnhook, IntPtr hinst, int threadid);


        [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
        public static extern bool UnhookWindowsHookEx(IntPtr hhook);


        [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
        public static extern IntPtr CallNextHookEx(IntPtr hhook, int code, IntPtr wparam, IntPtr lparam);

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public extern static int SystemParametersInfo(int nAction, int nParam, ref int value, int ignore);

        [DllImport("user32.dll")]
        public extern static int FillRect(IntPtr hdc, ref RECT rc, IntPtr brush);

        [DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto)]
        public static extern bool MessageBeep(int type);


        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public extern static int DrawText(IntPtr hdc, string lpString, int nCount, ref RECT lpRect, int uFormat);

        [DllImport("user32.dll")]
        public static extern IntPtr GetClassLong(System.IntPtr hWnd, int nIndex);


        [DllImport("user32.dll")]
        public static extern int AnimateWindow(
            System.IntPtr hwnd,     // handle to window
            int dwTime,  // duration of animation
            int dwFlags  // animation type
            );

        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool InvalidateRect(IntPtr hWnd, ref RECT rect, bool erase);

        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr LoadCursor(IntPtr hInstance, int cursor);

        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern int ShowWindow(IntPtr hWnd, short cmdShow);

        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, ref POINT pptDst, ref SIZE psize, IntPtr hdcSrc, ref POINT pprSrc, Int32 crKey, ref BLENDFUNCTION pblend, Int32 dwFlags);

        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool TrackMouseEvent(ref TRACKMOUSEEVENTS tme);

        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern bool SetWindowRgn(IntPtr hWnd, IntPtr hRgn, bool redraw);

        [DllImport("user32")]
        public static extern int ActivateKeyboardLayout(IntPtr hKL, int flags);
        [DllImport("user32")]
        public static extern int AdjustWindowRect(ref RECT lpRect, int dwStyle, int bMenu);
        [DllImport("user32")]
        public static extern int AdjustWindowRectEx(ref RECT lpRect, int dsStyle, int bMenu, int dwEsStyle);
        [DllImport("user32")]
        public static extern int AnyPopup();
        [DllImport("user32")]
        public static extern int AppendMenu(IntPtr hMenu, int wFlags, int wIDNewItem, IntPtr lpNewItem);
        [DllImport("user32")]
        public static extern int ArrangeIconicWindows(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int AttachThreadInput(int idAttach, int idAttachTo, int fAttach);
        [DllImport("user32")]
        public static extern int BeginDeferWindowPos(int nNumWindows);
        [DllImport("user32")]
        public static extern IntPtr BeginPaint(IntPtr hwnd, ref PAINTSTRUCT lpPaint);
        [DllImport("user32")]
        public static extern int BringWindowToTop(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int BroadcastSystemMessage(int dw, ref int pdw, int un, int wParam, int lParam);
        [DllImport("user32")]
        public static extern int CallMsgFilter(ref MSG lpMsg, int ncode);
        [DllImport("user32")]
        public static extern int CallNextHookEx(IntPtr hHook, int ncode, int wParam, IntPtr lParam);
        [DllImport("user32")]
        public static extern int CallWindowProc(int lpPrevWndFunc, IntPtr hwnd, int Msg, int wParam, int lParam);
        [DllImport("user32")]
        public static extern int ChangeClipboardChain(IntPtr hwnd, IntPtr hwndNext);
        [DllImport("user32")]
        public static extern int ChangeMenu(IntPtr hMenu, int cmd, string lpszNewItem, int cmdInsert, int flags);
        [DllImport("user32")]
        public static extern int CharLowerBuff(string lpsz, int cchLength);
        [DllImport("user32")]
        public static extern int CharToOem(string lpszSrc, string lpszDst);
        [DllImport("user32")]
        public static extern int CharToOemBuff(string lpszSrc, string lpszDst, int cchDstLength);
        [DllImport("user32")]
        public static extern int CharUpperBuff(string lpsz, int cchLength);
        [DllImport("user32")]
        public static extern int CheckDlgButton(IntPtr hDlg, int nIDButton, int wCheck);
        [DllImport("user32")]
        public static extern int CheckMenuItem(IntPtr hMenu, int wIDCheckItem, int wCheck);
        [DllImport("user32")]
        public static extern int CheckMenuRadioItem(IntPtr hMenu, int un1, int un2, int un3, int un4);
        [DllImport("user32")]
        public static extern int CheckRadioButton(IntPtr hDlg, int nIDFirstButton, int nIDLastButton, int nIDCheckButton);
        [DllImport("user32")]
        public static extern IntPtr ChildWindowFromPoint(IntPtr hwnd, int xPoint, int yPoint);
        [DllImport("user32")]
        public static extern IntPtr ChildWindowFromPointEx(IntPtr hwnd, int xPoint, int yPoint, int un);
        [DllImport("user32")]
        public static extern int ClientToScreen(IntPtr hwnd, ref POINT lpPoint);
        [DllImport("user32")]
        public static extern int ClipCursor(ref RECT lpRect);
        [DllImport("user32")]
        public static extern int CloseClipboard();
        [DllImport("user32")]
        public static extern int CloseDesktop(IntPtr hDesktop);
        [DllImport("user32")]
        public static extern int CloseWindow(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int CloseWindowStation(IntPtr hWinSta);
        [DllImport("user32")]
        public static extern int CopyAcceleratorTable(IntPtr hAccelSrc, ACCEL[] lpAccelDst, int cAccelEntries);
        [DllImport("user32")]
        public static extern int CopyCursor(IntPtr hcur);
        [DllImport("user32")]
        public static extern int CopyIcon(IntPtr hIcon);
        [DllImport("user32")]
        public static extern int CopyImage(IntPtr handle, int un1, int n1, int n2, int un2);
        [DllImport("user32")]
        public static extern int CopyRect(ref RECT lpDestRect, ref RECT lpSourceRect);
        [DllImport("user32")]
        public static extern int CountClipboardFormats();
        [DllImport("user32")]
        public static extern int CreateAcceleratorTable(ref ACCEL lpaccl, int cEntries);
        [DllImport("user32")]
        public static extern int CreateCaret(IntPtr hwnd, IntPtr hBitmap, int nWidth, int nHeight);
        [DllImport("user32")]
        public static extern IntPtr CreateCursor(IntPtr hInstance, int nXhotspot, int nYhotspot, int nWidth, int nHeight, IntPtr lpANDbitPlane, IntPtr lpXORbitPlane);
        [DllImport("user32")]
        public static extern IntPtr CreateDesktop(string lpszDesktop, string lpszDevice, ref DEVMODE pDevmode, int dwFlags, int dwDesiredAccess, ref SECURITY_ATTRIBUTES lpsa);
        [DllImport("user32")]
        public static extern IntPtr CreateDialogIndirectParam(IntPtr hInstance, ref DLGTEMPLATE lpTemplate, IntPtr hwndParent, ref int lpDialogFunc, int dwInitParam);
        [DllImport("user32")]
        public static extern IntPtr CreateDialogParam(IntPtr hInstance, string lpName, IntPtr hwndParent, ref int lpDialogFunc, int lParamInit);
        [DllImport("user32")]
        public static extern IntPtr CreateIcon(IntPtr hInstance, int nWidth, int nHeight, Byte nPlanes, Byte nBitsPixel, Byte lpANDbits, Byte lpXORbits);
        [DllImport("user32")]
        public static extern IntPtr CreateIconFromResource(Byte presbits, int dwResSize, int fIcon, int dwVer);
        [DllImport("user32")]
        public static extern IntPtr CreateIconIndirect(ref ICONINFO piconinfo);
        [DllImport("user32")]
        public static extern IntPtr CreateMDIWindow(string lpClassName, string lpWindowName, int dwStyle, int x, int y, int nWidth, int nHeight, IntPtr hwndParent, IntPtr hInstance, int lParam);
        [DllImport("user32")]
        public static extern IntPtr CreateMenu();
        [DllImport("user32")]
        public static extern IntPtr CreatePopupMenu();
        [DllImport("user32")]
        public static extern IntPtr CreateWindowEx(int dwExStyle, string lpClassName, string lpWindowName, int dwStyle, int x, int y, int nWidth, int nHeight, IntPtr hwndParent, IntPtr hMenu, IntPtr hInstance, IntPtr lpParam);
        [DllImport("user32")]
        public static extern int DdeAbandonTransaction(int idInst, IntPtr hConv, int idTransaction);
        [DllImport("user32")]
        public static extern int DdeAccessData(IntPtr hData, ref int pcbDataSize);
        [DllImport("user32")]
        public static extern int DdeAddData(IntPtr hData, Byte pSrc, int cb, int cbOff);
        [DllImport("user32")]
        public static extern int DdeClientTransaction(Byte pData, int cbData, IntPtr hConv, IntPtr hszItem, int wFmt, int wType, int dwTimeout, ref int pdwResult);
        [DllImport("user32")]
        public static extern int DdeCmpStringHandles(IntPtr hsz1, IntPtr hsz2);
        [DllImport("user32")]
        public static extern int DdeConnect(int idInst, IntPtr hszService, IntPtr hszTopic, ref CONVCONTEXT pCC);
        [DllImport("user32")]
        public static extern int DdeConnectList(int idInst, IntPtr hszService, IntPtr hszTopic, IntPtr hConvList, ref CONVCONTEXT pCC);
        [DllImport("user32")]
        public static extern int DdeCreateDataHandle(int idInst, Byte pSrc, int cb, int cbOff, IntPtr hszItem, int wFmt, int afCmd);
        [DllImport("user32")]
        public static extern int DdeCreateStringHandle(int idInst, string psz, int iCodePage);
        [DllImport("user32")]
        public static extern int DdeDisconnect(IntPtr hConv);
        [DllImport("user32")]
        public static extern int DdeDisconnectList(IntPtr hConvList);
        [DllImport("user32")]
        public static extern int DdeEnableCallback(int idInst, IntPtr hConv, int wCmd);
        [DllImport("user32")]
        public static extern int DdeFreeDataHandle(IntPtr hData);
        [DllImport("user32")]
        public static extern int DdeFreeStringHandle(int idInst, IntPtr hsz);
        [DllImport("user32")]
        public static extern int DdeGetData(IntPtr hData, Byte pDst, int cbMax, int cbOff);
        [DllImport("user32")]
        public static extern int DdeGetLastError(int idInst);
        [DllImport("user32")]
        public static extern int DdeImpersonateClient(IntPtr hConv);
        [DllImport("user32")]
        public static extern int DdeKeepStringHandle(int idInst, IntPtr hsz);
        [DllImport("user32")]
        public static extern int DdeNameService(int idInst, IntPtr hsz1, IntPtr hsz2, int afCmd);
        [DllImport("user32")]
        public static extern int DdePostAdvise(int idInst, IntPtr hszTopic, IntPtr hszItem);
        [DllImport("user32")]
        public static extern int DdeQueryConvInfo(IntPtr hConv, int idTransaction, ref CONVINFO pConvInfo);
        [DllImport("user32")]
        public static extern int DdeQueryNextServer(IntPtr hConvList, IntPtr hConvPrev);
        [DllImport("user32")]
        public static extern int DdeQueryString(int idInst, IntPtr hsz, string psz, int cchMax, int iCodePage);
        [DllImport("user32")]
        public static extern int DdeReconnect(IntPtr hConv);
        [DllImport("user32")]
        public static extern int DdeSetQualityOfService(IntPtr hwndClient, ref SECURITY_QUALITY_OF_SERVICE pqosNew, ref SECURITY_QUALITY_OF_SERVICE pqosPrev);
        [DllImport("user32")]
        public static extern int DdeSetUserHandle(IntPtr hConv, int id, IntPtr hUser);
        [DllImport("user32")]
        public static extern int DdeUnaccessData(IntPtr hData);
        [DllImport("user32")]
        public static extern int DdeUninitialize(int idInst);
        [DllImport("user32")]
        public static extern int DefDlgProc(IntPtr hDlg, int wMsg, int wParam, int lParam);
        [DllImport("user32")]
        public static extern int DefFrameProc(IntPtr hwnd, IntPtr hwndMDIClient, int wMsg, int wParam, int lParam);
        [DllImport("user32")]
        public static extern int DefMDIChildProc(IntPtr hwnd, int wMsg, int wParam, int lParam);
        [DllImport("user32")]
        public static extern int DefWindowProc(IntPtr hwnd, int wMsg, int wParam, int lParam);
        [DllImport("user32")]
        public static extern int DeferWindowPos(IntPtr hWinPosInfo, IntPtr hwnd, IntPtr hwndInsertAfter, int x, int y, int cx, int cy, int wFlags);
        [DllImport("user32")]
        public static extern int DeleteMenu(IntPtr hMenu, int nPosition, int wFlags);
        [DllImport("user32")]
        public static extern int DestroyAcceleratorTable(IntPtr haccel);
        [DllImport("user32")]
        public static extern int DestroyCaret();
        [DllImport("user32")]
        public static extern int DestroyCursor(IntPtr hCursor);
        [DllImport("user32")]
        public static extern int DestroyIcon(IntPtr hIcon);
        [DllImport("user32")]
        public static extern int DestroyMenu(IntPtr hMenu);
        [DllImport("user32")]
        public static extern int DialogBoxIndirectParam(IntPtr hInstance, DLGTEMPLATE hDialogTemplate, IntPtr hwndParent, ref int lpDialogFunc, int dwInitParam);
        [DllImport("user32")]
        public static extern int DlgDirList(IntPtr hDlg, string lpPathSpec, int nIDListBox, int nIDStaticPath, int wFileType);
        [DllImport("user32")]
        public static extern int DlgDirListComboBox(IntPtr hDlg, string lpPathSpec, int nIDComboBox, int nIDStaticPath, int wFileType);
        [DllImport("user32")]
        public static extern int DlgDirSelectComboBoxEx(IntPtr hwndDlg, string lpszPath, int cbPath, int idComboBox);
        [DllImport("user32")]
        public static extern int DlgDirSelectEx(IntPtr hwndDlg, string lpszPath, int cbPath, int idListBox);
        [DllImport("user32")]
        public static extern int DragDetect(IntPtr hwnd, POINT pt);
        [DllImport("user32")]
        public static extern int DragObject(IntPtr hwnd1, IntPtr hwnd2, int un, int dw, IntPtr hCursor);
        [DllImport("user32")]
        public static extern int DrawAnimatedRects(IntPtr hwnd, int idAni, ref RECT lprcFrom, ref RECT lprcTo);
        [DllImport("user32")]
        public static extern int DrawCaption(IntPtr hwnd, IntPtr hdc, ref RECT pcRect, int un);
        [DllImport("user32")]
        public static extern int DrawEdge(IntPtr hdc, ref RECT qrc, int edge, int grfFlags);
        [DllImport("user32")]
        public static extern int DrawFocusRect(IntPtr hdc, ref RECT lpRect);
        [DllImport("user32")]
        public static extern int DrawFrameControl(IntPtr hdc, ref RECT lpRect, int un1, int un2);
        [DllImport("user32")]
        public static extern int DrawIcon(IntPtr hdc, int x, int y, IntPtr hIcon);
        [DllImport("user32")]
        public static extern int DrawIconEx(IntPtr hdc, int xLeft, int yTop, IntPtr hIcon, int cxWidth, int cyWidth, int istepIfAniCur, IntPtr hbrFlickerFreeDraw, int diFlags);
        [DllImport("user32")]
        public static extern int DrawMenuBar(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int DrawState(IntPtr hdc, IntPtr hBrush, ref int lpDrawStateProc, int lParam, int wParam, int n1, int n2, int n3, int n4, int un);
        [DllImport("user32")]
        public static extern int DrawTextEx(IntPtr hdc, string lpsz, int n, ref RECT lpRect, int un, ref DRAWTEXTPARAMS lpDrawTextParams);
        [DllImport("user32")]
        public static extern int EmptyClipboard();
        [DllImport("user32")]
        public static extern int EnableMenuItem(IntPtr hMenu, int wIDEnableItem, int wEnable);
        [DllImport("user32")]
        public static extern int EnableScrollBar(IntPtr hwnd, int wSBflags, int wArrows);
        [DllImport("user32")]
        public static extern int EnableWindow(IntPtr hwnd, int fEnable);
        [DllImport("user32")]
        public static extern int EndDeferWindowPos(IntPtr hWinPosInfo);
        [DllImport("user32")]
        public static extern int EndDialog(IntPtr hDlg, int nResult);
        [DllImport("user32")]
        public static extern int EndPaint(IntPtr hwnd, ref PAINTSTRUCT lpPaint);
        [DllImport("user32")]
        public static extern int EnumChildWindows(IntPtr hwndParent, ref int lpEnumFunc, int lParam);
        [DllImport("user32")]
        public static extern int EnumClipboardFormats(int wFormat);
        [DllImport("user32")]
        public static extern int EnumDesktopWindows(IntPtr hDesktop, ref int lpfn, int lParam);
        [DllImport("user32")]
        public static extern int EnumDesktops(IntPtr hwinsta, ref int lpEnumFunc, int lParam);
        [DllImport("user32")]
        public static extern int EnumProps(IntPtr hwnd, ref int lpEnumFunc);
        [DllImport("user32")]
        public static extern int EnumPropsEx(IntPtr hwnd, ref int lpEnumFunc, int lParam);
        [DllImport("user32")]
        public static extern int EnumThreadWindows(int dwThreadId, ref int lpfn, int lParam);
        [DllImport("user32")]
        public static extern int EnumWindowStations(int lpEnumFunc, int lParam);
        [DllImport("user32")]
        public static extern int EnumWindows(int lpEnumFunc, int lParam);
        [DllImport("user32")]
        public static extern int EqualRect(ref RECT lpRect1, ref RECT lpRect2);
        [DllImport("user32")]
        public static extern int ExcludeUpdateRgn(IntPtr hdc, IntPtr hwnd);
        [DllImport("user32")]
        public static extern int ExitWindows(int dwReserved, int uReturnCode);
        [DllImport("user32")]
        public static extern int ExitWindowsEx(int uFlags, int dwReserved);
        [DllImport("user32")]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        [DllImport("user32")]
        public static extern IntPtr FindWindowEx(IntPtr hwnd1, IntPtr hwnd2, string lpsz1, string lpsz2);
        [DllImport("user32")]
        public static extern int FlashWindow(IntPtr hwnd, int bInvert);
        [DllImport("user32")]
        public static extern int FrameRect(IntPtr hdc, ref RECT lpRect, IntPtr hBrush);
        [DllImport("user32")]
        public static extern int FreeDDElParam(int msg, int lParam);
        [DllImport("user32")]
        public static extern IntPtr GetActiveWindow();
        [DllImport("user32")]
        public static extern IntPtr GetCapture();
        [DllImport("user32")]
        public static extern int GetCaretBlinkTime();
        [DllImport("user32")]
        public static extern int GetCaretPos(ref POINT lpPoint);
        [DllImport("user32")]
        public static extern int GetClassInfo(IntPtr hInstance, string lpClassName, out WNDCLASS lpWndClass);
        [DllImport("user32")]
        public static extern int GetClassName(IntPtr hwnd, string lpClassName, int nMaxCount);
        [DllImport("user32")]
        public static extern int GetClassWord(IntPtr hwnd, int nIndex);
        [DllImport("user32")]
        public static extern int GetClientRect(IntPtr hwnd, ref RECT lpRect);
        [DllImport("user32")]
        public static extern int GetClipCursor(out RECT lprc);
        [DllImport("user32")]
        public static extern int GetClipboardData(int wFormat);
        [DllImport("user32")]
        public static extern int GetClipboardFormatName(int wFormat, string lpString, int nMaxCount);
        [DllImport("user32")]
        public static extern int GetClipboardOwner();
        [DllImport("user32")]
        public static extern int GetClipboardViewer();
        [DllImport("user32")]
        public static extern IntPtr GetCursor();
        [DllImport("user32")]
        public static extern IntPtr GetDC(IntPtr hwnd);
        [DllImport("user32")]
        public static extern IntPtr GetDCEx(IntPtr hwnd, IntPtr hrgnclip, int fdwOptions);
        [DllImport("user32")]
        public static extern IntPtr GetDesktopWindow();
        [DllImport("user32")]
        public static extern int GetDialogBaseUnits();
        [DllImport("user32")]
        public static extern int GetDlgCtrlID(IntPtr hwnd);
        [DllImport("user32")]
        public static extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem);
        [DllImport("user32")]
        public static extern int GetDlgItemInt(IntPtr hDlg, int nIDDlgItem, ref int lpTranslated, int bSigned);
        [DllImport("user32")]
        public static extern int GetDlgItemText(IntPtr hDlg, int nIDDlgItem, StringBuilder lpString, int nMaxCount);
        [DllImport("user32")]
        public static extern int GetDoubleClickTime();
        [DllImport("user32")]
        public static extern IntPtr GetFocus();
        [DllImport("user32")]
        public static extern int GetIconInfo(IntPtr hIcon, out ICONINFO piconinfo);
        [DllImport("user32")]
        public static extern int GetInputState();
        [DllImport("user32")]
        public static extern int GetKBCodePage();
        [DllImport("user32")]
        public static extern int GetKeyNameText(int lParam, StringBuilder lpBuffer, int nSize);
        [DllImport("user32")]
        public static extern int GetKeyboardLayout(int dwLayout);
        [DllImport("user32")]
        public static extern int GetKeyboardLayoutList(int nBuff, ref int lpList);
        [DllImport("user32")]
        public static extern int GetKeyboardLayoutName(string pwszKLID);
        [DllImport("user32")]
        public static extern int GetKeyboardState(Byte pbKeyState);
        [DllImport("user32")]
        public static extern int GetKeyboardType(int nTypeFlag);
        [DllImport("user32")]
        public static extern int GetLastActivePopup(IntPtr hwndOwnder);
        [DllImport("user32")]
        public static extern IntPtr GetMenu(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int GetMenuCheckMarkDimensions();
        [DllImport("user32")]
        public static extern int GetMenuContextHelpId(IntPtr hMenu);
        [DllImport("user32")]
        public static extern int GetMenuDefaultItem(IntPtr hMenu, int fByPos, int gmdiFlags);
        [DllImport("user32")]
        public static extern int GetMenuItemCount(IntPtr hMenu);
        [DllImport("user32")]
        public static extern int GetMenuItemID(IntPtr hMenu, int nPos);
        [DllImport("user32")]
        public static extern int GetMenuItemInfo(IntPtr hMenu, int un, int b, ref MENUITEMINFO lpMenuItemInfo);
        [DllImport("user32")]
        public static extern int GetMenuItemRect(IntPtr hwnd, IntPtr hMenu, int uItem, ref RECT lprcItem);
        [DllImport("user32")]
        public static extern int GetMenuState(IntPtr hMenu, int wID, int wFlags);
        [DllImport("user32")]
        public static extern int GetMenuString(IntPtr hMenu, int wIDItem, StringBuilder lpString, int nMaxCount, int wFlag);
        [DllImport("user32")]
        public static extern int GetMessage(ref MSG lpMsg, IntPtr hwnd, int wMsgFilterMin, int wMsgFilterMax);
        [DllImport("user32")]
        public static extern int GetMessageExtraInfo();
        [DllImport("user32")]
        public static extern int GetMessagePos();
        [DllImport("user32")]
        public static extern int GetMessageTime();
        [DllImport("user32")]
        public static extern int GetNextDlgGroupItem(IntPtr hDlg, IntPtr hCtl, int bPrevious);
        [DllImport("user32")]
        public static extern int GetNextDlgTabItem(IntPtr hDlg, IntPtr hCtl, int bPrevious);
        [DllImport("user32")]
        public static extern IntPtr GetNextWindow(IntPtr hwnd, int wFlag);
        [DllImport("user32")]
        public static extern int GetOpenClipboardWindow();
        [DllImport("user32")]
        public static extern int GetPriorityClipboardFormat(int lpPriorityList, int nCount);
        [DllImport("user32")]
        public static extern int GetProcessWindowStation();
        [DllImport("user32")]
        public static extern int GetProp(IntPtr hwnd, string lpString);
        [DllImport("user32")]
        public static extern int GetQueueStatus(int fuFlags);
        [DllImport("user32")]
        public static extern int GetScrollInfo(IntPtr hwnd, int n, ref SCROLLINFO lpScrollInfo);
        [DllImport("user32")]
        public static extern int GetScrollPos(IntPtr hwnd, int nBar);
        [DllImport("user32")]
        public static extern int GetScrollRange(IntPtr hwnd, int nBar, ref int lpMinPos, ref int lpMaxPos);
        [DllImport("user32")]
        public static extern IntPtr GetSubMenu(IntPtr hMenu, int nPos);
        [DllImport("user32")]
        public static extern int GetSysColor(int nIndex);
        [DllImport("user32")]
        public static extern int GetSysColorBrush(int nIndex);
        [DllImport("user32")]
        public static extern IntPtr GetSystemMenu(IntPtr hwnd, int bRevert);
        [DllImport("user32")]
        public static extern int GetSystemMetrics(int nIndex);
        [DllImport("user32")]
        public static extern int GetTabbedTextExtent(IntPtr hdc, string lpString, int nCount, int nTabPositions, ref int lpnTabStopPositions);
        [DllImport("user32")]
        public static extern int GetThreadDesktop(int dwThread);
        [DllImport("user32")]
        public static extern IntPtr GetTopWindow(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int GetUpdateRect(IntPtr hwnd, ref RECT lpRect, int bErase);
        [DllImport("user32")]
        public static extern int GetUpdateRgn(IntPtr hwnd, IntPtr hRgn, int fErase);
        [DllImport("user32")]
        public static extern int GetUserObjectInformation(IntPtr hObj, int nIndex, IntPtr pvInfo, int nLength, ref int lpnLengthNeeded);
        [DllImport("user32")]
        public static extern int GetUserObjectSecurity(IntPtr hObj, ref int pSIRequested, ref SECURITY_DESCRIPTOR pSd, int nLength, ref int lpnLengthNeeded);
        [DllImport("user32")]
        public static extern IntPtr GetWindow(IntPtr hwnd, int wCmd);
        [DllImport("user32")]
        public static extern int GetWindowContextHelpId(IntPtr hwnd);
        [DllImport("user32")]
        public static extern IntPtr GetWindowDC(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int GetWindowPlacement(IntPtr hwnd, ref WINDOWPLACEMENT lpwndpl);
        [DllImport("user32")]
        public static extern int GetWindowRgn(IntPtr hwnd, IntPtr hRgn);
        [DllImport("user32")]
        public static extern int GetWindowText(IntPtr hwnd, StringBuilder lpString, int cch);
        [DllImport("user32")]
        public static extern int GetWindowTextLength(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int GetWindowThreadProcessId(IntPtr hwnd, ref int lpdwProcessId);
        [DllImport("user32")]
        public static extern int GrayString(IntPtr hdc, IntPtr hBrush, ref int lpOutputFunc, ref int lpData, int nCount, int X, int Y, int nWidth, int nHeight);
        [DllImport("user32")]
        public static extern int HideCaret(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int HiliteMenuItem(IntPtr hwnd, IntPtr hMenu, int wIDHiliteItem, int wHilite);
        [DllImport("user32")]
        public static extern int ImpersonateDdeClientWindow(IntPtr hwndClient, IntPtr hwndServer);
        [DllImport("user32")]
        public static extern int InSendMessage();
        [DllImport("user32")]
        public static extern int InflateRect(ref RECT lpRect, int x, int y);
        [DllImport("user32")]
        public static extern int InsertMenu(IntPtr hMenu, int nPosition, int wFlags, int wIDNewItem, IntPtr lpNewItem);
        [DllImport("user32")]
        public static extern int InsertMenuItem(IntPtr hMenu, int un, bool b, ref MENUITEMINFO lpcMenuItemInfo);
        [DllImport("user32")]
        public static extern int IntersectRect(ref RECT lpDestRect, ref RECT lpSrc1Rect, ref RECT lpSrc2Rect);
        [DllImport("user32")]
        public static extern int InvalidateRect(IntPtr hwnd, ref RECT lpRect, int bErase);
        [DllImport("user32")]
        public static extern int InvalidateRgn(IntPtr hwnd, IntPtr hRgn, int bErase);
        [DllImport("user32")]
        public static extern int InvertRect(IntPtr hdc, ref RECT lpRect);
        [DllImport("user32")]
        public static extern int IsCharAlpha(Byte cChar);
        [DllImport("user32")]
        public static extern int IsCharAlphaNumeric(Byte cChar);
        [DllImport("user32")]
        public static extern int IsCharLower(Byte cChar);
        [DllImport("user32")]
        public static extern int IsCharUpper(Byte cChar);
        [DllImport("user32")]
        public static extern int IsChild(IntPtr hwndParent, IntPtr hwnd);
        [DllImport("user32")]
        public static extern int IsClipboardFormatAvailable(int wFormat);
        [DllImport("user32")]
        public static extern int IsDialogMessage(IntPtr hDlg, ref MSG lpMsg);
        [DllImport("user32")]
        public static extern int IsDlgButtonChecked(IntPtr hDlg, int nIDButton);
        [DllImport("user32")]
        public static extern int IsIconic(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int IsMenu(IntPtr hMenu);
        [DllImport("user32")]
        public static extern int IsRectEmpty(ref RECT lpRect);
        [DllImport("user32")]
        public static extern int IsWindow(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int IsWindowEnabled(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int IsWindowUnicode(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int IsWindowVisible(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int IsZoomed(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int KillTimer(IntPtr hwnd, int nIDEvent);
        [DllImport("user32")]
        public static extern int LoadAccelerators(IntPtr hInstance, string lpTableName);
        [DllImport("user32")]
        public static extern int LoadBitmap(IntPtr hInstance, string lpBitmapName);
        [DllImport("user32")]
        public static extern int LoadCursor(IntPtr hInstance, string lpCursorName);
        [DllImport("user32")]
        public static extern int LoadCursorFromFile(string lpFileName);
        [DllImport("user32")]
        public static extern int LoadIcon(IntPtr hInstance, string lpIconName);
        [DllImport("user32")]
        public static extern int LoadKeyboardLayout(string pwszKLID, int flags);
        [DllImport("user32")]
        public static extern int LoadMenu(IntPtr hInstance, string lpString);
        [DllImport("user32")]
        public static extern int LoadMenuIndirect(int lpMenuTemplate);
        [DllImport("user32")]
        public static extern int LoadString(IntPtr hInstance, int wID, StringBuilder lpBuffer, int nBufferMax);
        [DllImport("user32")]
        public static extern int LockWindowUpdate(IntPtr hwndLock);
        [DllImport("user32")]
        public static extern int LookupIconIdFromDirectory(Byte presbits, int fIcon);
        [DllImport("user32")]
        public static extern int LookupIconIdFromDirectoryEx(Byte presbits, int fIcon, int cxDesired, int cyDesired, int Flags);
        [DllImport("user32")]
        public static extern int MapDialogRect(IntPtr hDlg, ref RECT lpRect);
        [DllImport("user32")]
        public static extern int MapVirtualKey(int wCode, int wMapType);
        [DllImport("user32")]
        public static extern int MapVirtualKeyEx(int uCode, int uMapType, int dwhkl);
        [DllImport("user32")]
        public static extern int MapWindowPoints(IntPtr hwndFrom, IntPtr hwndTo, POINT[] lppt, int cPoints);
        [DllImport("user32")]
        public static extern int MenuItemFromPoint(IntPtr hwnd, IntPtr hMenu, POINT ptScreen);
        [DllImport("user32")]
        public static extern int MessageBox(IntPtr hwnd, string lpText, string lpCaption, int wType);
        [DllImport("user32")]
        public static extern int MessageBoxEx(IntPtr hwnd, string lpText, string lpCaption, int uType, int wLanguageId);
        [DllImport("user32")]
        public static extern int MessageBoxIndirect(ref MSGBOXPARAMS lpMsgBoxParams);
        [DllImport("user32")]
        public static extern int ModifyMenu(IntPtr hMenu, int nPosition, int wFlags, int wIDNewItem, IntPtr lpString);
        [DllImport("user32")]
        public static extern int MoveWindow(IntPtr hwnd, int x, int y, int nWidth, int nHeight, int bRepaint);
        [DllImport("user32")]
        public static extern int MsgWaitForMultipleObjects(int nCount, ref int pHandles, int fWaitAll, int dwMilliseconds, int dwWakeMask);
        [DllImport("user32")]
        public static extern int OemKeyScan(int wOemChar);
        [DllImport("user32")]
        public static extern int OemToChar(string lpszSrc, string lpszDst);
        [DllImport("user32")]
        public static extern int OemToCharBuff(string lpszSrc, string lpszDst, int cchDstLength);
        [DllImport("user32")]
        public static extern int OffsetRect(ref RECT lpRect, int x, int y);
        [DllImport("user32")]
        public static extern int OpenClipboard(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int OpenDesktop(string lpszDesktop, int dwFlags, int fInherit, int dwDesiredAccess);
        [DllImport("user32")]
        public static extern int OpenIcon(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int OpenInputDesktop(int dwFlags, int fInherit, int dwDesiredAccess);
        [DllImport("user32")]
        public static extern int OpenWindowStation(string lpszWinSta, int fInherit, int dwDesiredAccess);
        [DllImport("user32")]
        public static extern int PackDDElParam(int msg, int uiLo, int uiHi);
        [DllImport("user32")]
        public static extern int PaintDesktop(IntPtr hdc);
        [DllImport("user32")]
        public static extern int PeekMessage(ref MSG lpMsg, IntPtr hwnd, int wMsgFilterMin, int wMsgFilterMax, int wRemoveMsg);
        [DllImport("user32")]
        public static extern int PostThreadMessage(int idThread, int msg, int wParam, int lParam);
        [DllImport("user32")]
        public static extern int PtInRect(ref RECT lpRect, int ptX, int ptY);
        [DllImport("user32")]
        public static extern int RegisterClass(ref WNDCLASS Class);
        [DllImport("user32")]
        public static extern int RegisterClipboardFormat(string lpString);
        [DllImport("user32")]
        public static extern int RegisterHotKey(IntPtr hwnd, int id, int fsModifiers, int vk);
        [DllImport("user32")]
        public static extern int RegisterWindowMessage(string lpString);
        [DllImport("user32")]
        public static extern int ReleaseCapture();
        [DllImport("user32")]
        public static extern int ReleaseDC(IntPtr hwnd, IntPtr hdc);
        [DllImport("user32")]
        public static extern int RemoveMenu(IntPtr hMenu, int nPosition, int wFlags);
        [DllImport("user32")]
        public static extern int RemoveProp(IntPtr hwnd, string lpString);
        [DllImport("user32")]
        public static extern int ReplyMessage(int lReply);
        [DllImport("user32")]
        public static extern int ReuseDDElParam(int lParam, int msgIn, int msgOut, int uiLo, int uiHi);
        [DllImport("user32")]
        public static extern int ScreenToClient(IntPtr hwnd, ref POINT lpPoint);
        [DllImport("user32")]
        public static extern int ScrollDC(IntPtr hdc, int dx, int dy, ref RECT lprcScroll, ref RECT lprcClip, IntPtr hrgnUpdate, ref RECT lprcUpdate);
        [DllImport("user32")]
        public static extern int ScrollWindow(IntPtr hwnd, int XAmount, int YAmount, ref RECT lpRect, ref RECT lpClipRect);
        [DllImport("user32")]
        public static extern int ScrollWindowEx(IntPtr hwnd, int dx, int dy, ref RECT lprcScroll, ref RECT lprcClip, IntPtr hrgnUpdate, ref RECT lprcUpdate, int fuScroll);
        [DllImport("user32")]
        public static extern int SendDlgItemMessage(IntPtr hDlg, int nIDDlgItem, int wMsg, int wParam, int lParam);
        [DllImport("user32")]
        public static extern int SendMessageCallback(IntPtr hwnd, int msg, int wParam, int lParam, ref int lpResultCallBack, int dwData);
        [DllImport("user32")]
        public static extern int SendMessageTimeout(IntPtr hwnd, int msg, int wParam, int lParam, int fuFlags, int uTimeout, ref int lpdwResult);
        [DllImport("user32")]
        public static extern int SendNotifyMessage(IntPtr hwnd, int msg, int wParam, int lParam);
        [DllImport("user32")]
        public static extern int SetActiveWindow(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int SetCapture(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int SetCaretBlinkTime(int wMSeconds);
        [DllImport("user32")]
        public static extern int SetCaretPos(int x, int y);
        [DllImport("user32")]
        public static extern int SetClassLong(IntPtr hwnd, int nIndex, int dwNewLong);
        [DllImport("user32")]
        public static extern int SetClassWord(IntPtr hwnd, int nIndex, int wNewWord);
        [DllImport("user32")]
        public static extern int SetClipboardData(int wFormat, IntPtr hMem);
        [DllImport("user32")]
        public static extern int SetClipboardViewer(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int SetCursor(IntPtr hCursor);
        [DllImport("user32")]
        public static extern int SetCursorPos(int x, int y);
        [DllImport("user32")]
        public static extern int SetDlgItemInt(IntPtr hDlg, int nIDDlgItem, int wValue, int bSigned);
        [DllImport("user32")]
        public static extern int SetDlgItemText(IntPtr hDlg, int nIDDlgItem, string lpString);
        [DllImport("user32")]
        public static extern int SetDoubleClickTime(int wCount);
        [DllImport("user32")]
        public static extern int SetFocus(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int SetKeyboardState(Byte lppbKeyState);
        [DllImport("user32")]
        public static extern int SetMenu(IntPtr hwnd, IntPtr hMenu);
        [DllImport("user32")]
        public static extern int SetMenuContextHelpId(IntPtr hMenu, int dw);
        [DllImport("user32")]
        public static extern int SetMenuDefaultItem(IntPtr hMenu, int uItem, int fByPos);
        [DllImport("user32")]
        public static extern int SetMenuItemBitmaps(IntPtr hMenu, int nPosition, int wFlags, IntPtr hBitmapUnchecked, IntPtr hBitmapChecked);
        [DllImport("user32")]
        public static extern int SetMenuItemInfo(IntPtr hMenu, int un, bool b, ref MENUITEMINFO lpcMenuItemInfo);
        [DllImport("user32")]
        public static extern int SetMessageExtraInfo(int lParam);
        [DllImport("user32")]
        public static extern int SetMessageQueue(int cMessagesMax);
        [DllImport("user32")]
        public static extern int SetParent(IntPtr hwndChild, IntPtr hwndNewParent);
        [DllImport("user32")]
        public static extern int SetProcessWindowStation(IntPtr hWinSta);
        [DllImport("user32")]
        public static extern int SetProp(IntPtr hwnd, string lpString, IntPtr hData);
        [DllImport("user32")]
        public static extern int SetRect(ref RECT lpRect, int X1, int Y1, int X2, int Y2);
        [DllImport("user32")]
        public static extern int SetRectEmpty(ref RECT lpRect);
        [DllImport("user32")]
        public static extern int SetScrollInfo(IntPtr hwnd, int n, ref SCROLLINFO lpcScrollInfo, bool redraw);
        [DllImport("user32")]
        public static extern int SetScrollPos(IntPtr hwnd, int nBar, int nPos, int bRedraw);
        [DllImport("user32")]
        public static extern int SetScrollRange(IntPtr hwnd, int nBar, int nMinPos, int nMaxPos, int bRedraw);
        [DllImport("user32")]
        public static extern int SetSysColors(int nChanges, ref int lpSysColor, ref int lpColorValues);
        [DllImport("user32")]
        public static extern int SetSystemCursor(IntPtr hcur, int id);
        [DllImport("user32")]
        public static extern int SetThreadDesktop(IntPtr hDesktop);
        [DllImport("user32")]
        public static extern int SetTimer(IntPtr hwnd, int nIDEvent, int uElapse, ref int lpTimerFunc);
        [DllImport("user32")]
        public static extern int SetUserObjectInformation(IntPtr hObj, int nIndex, IntPtr pvInfo, int nLength);
        [DllImport("user32")]
        public static extern int SetUserObjectSecurity(IntPtr hObj, ref int pSIRequested, ref SECURITY_DESCRIPTOR pSd);
        [DllImport("user32")]
        public static extern int SetWindowContextHelpId(IntPtr hwnd, int dw);
        [DllImport("user32")]
        public static extern int SetWindowLong(IntPtr hwnd, int nIndex, int dwNewLong);
        [DllImport("user32")]
        public static extern int SetWindowPlacement(IntPtr hwnd, ref WINDOWPLACEMENT lpwndpl);
        [DllImport("user32")]
        public static extern int SetWindowRgn(IntPtr hwnd, IntPtr hRgn, int bRedraw);
        [DllImport("user32")]
        public static extern int SetWindowText(IntPtr hwnd, string lpString);
        [DllImport("user32")]
        public static extern int SetWindowWord(IntPtr hwnd, int nIndex, int wNewWord);
        [DllImport("user32")]
        public static extern int SetWindowsHook(int nFilterType, ref int pfnFilterProc);
        [DllImport("user32")]
        public static extern int SetWindowsHookEx(int idHook, ref int lpfn, IntPtr hmod, int dwThreadId);
        [DllImport("user32")]
        public static extern int ShowCaret(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int ShowCursor(int bShow);
        [DllImport("user32")]
        public static extern int ShowOwnedPopups(IntPtr hwnd, int fShow);
        [DllImport("user32")]
        public static extern int ShowScrollBar(IntPtr hwnd, int wBar, int bShow);
        [DllImport("user32")]
        public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
        [DllImport("user32")]
        public static extern int ShowWindowAsync(IntPtr hwnd, int nCmdShow);
        [DllImport("user32")]
        public static extern int SubtractRect(ref RECT lprcDst, ref RECT lprcSrc1, ref RECT lprcSrc2);
        [DllImport("user32")]
        public static extern int SwapMouseButton(int bSwap);
        [DllImport("user32")]
        public static extern int SwitchDesktop(IntPtr hDesktop);
        [DllImport("user32")]
        public static extern int SystemParametersInfo(int uAction, int uParam, ref IntPtr lpvParam, int fuWinIni);
        [DllImport("user32")]
        public static extern int SystemParametersInfo(int uAction, int uParam, ref NONCLIENTMETRICS lpvParam, int fuWinIni);
        [DllImport("user32")]
        public static extern int SystemParametersInfo(int uAction, int uParam, ref LOGFONT lpvParam, int fuWinIni);
        [DllImport("user32")]
        public static extern int SystemParametersInfo(int uAction, int uParam, ref RECT lpvParam, int fuWinIni);
        [DllImport("user32")]
        public static extern int TabbedTextOut(IntPtr hdc, int x, int y, string lpString, int nCount, int nTabPositions, ref int lpnTabStopPositions, int nTabOrigin);
        [DllImport("user32")]
        public static extern int ToAscii(int uVirtKey, int uScanCode, Byte lpbKeyState, ref int lpwTransKey, int fuState);
        [DllImport("user32")]
        public static extern int ToAsciiEx(int uVirtKey, int uScanCode, Byte lpKeyState, short lpChar, int uFlags, int dwhkl);
        [DllImport("user32")]
        public static extern int ToUnicode(int wVirtKey, int wScanCode, Byte lpKeyState, string pwszBuff, int cchBuff, int wFlags);
        [DllImport("user32")]
        public static extern int TrackPopupMenu(IntPtr hMenu, int wFlags, int x, int y, int nReserved, IntPtr hwnd, ref RECT lprc);
        [DllImport("user32")]
        public static extern int TrackPopupMenuEx(IntPtr hMenu, int un, int n1, int n2, IntPtr hwnd, ref TPMPARAMS lpTPMParams);
        [DllImport("user32")]
        public static extern int TranslateAccelerator(IntPtr hwnd, IntPtr hAccTable, ref MSG lpMsg);
        [DllImport("user32")]
        public static extern int TranslateMDISysAccel(IntPtr hwndClient, ref MSG lpMsg);
        [DllImport("user32")]
        public static extern int UnhookWindowsHook(int nCode, ref int pfnFilterProc);
        [DllImport("user32")]
        public static extern int UnionRect(ref RECT lpDestRect, ref RECT lpSrc1Rect, ref RECT lpSrc2Rect);
        [DllImport("user32")]
        public static extern int UnloadKeyboardLayout(IntPtr hKL);
        [DllImport("user32")]
        public static extern int UnpackDDElParam(int msg, int lParam, ref int puiLo, ref int puiHi);
        [DllImport("user32")]
        public static extern int UnregisterClass(string lpClassName, IntPtr hInstance);
        [DllImport("user32")]
        public static extern int UnregisterHotKey(IntPtr hwnd, int id);
        [DllImport("user32")]
        public static extern int UpdateWindow(IntPtr hwnd);
        [DllImport("user32")]
        public static extern int ValidateRect(IntPtr hwnd, ref RECT lpRect);
        [DllImport("user32")]
        public static extern int ValidateRgn(IntPtr hwnd, IntPtr hRgn);
        [DllImport("user32")]
        public static extern int WaitForInputIdle(IntPtr hProcess, int dwMilliseconds);
        [DllImport("user32")]
        public static extern int WinHelp(IntPtr hwnd, string lpHelpFile, int wCommand, int dwData);
        [DllImport("user32")]
        public static extern IntPtr WindowFromDC(IntPtr hdc);
        [DllImport("user32")]
        public static extern IntPtr WindowFromPoint(int xPoint, int yPoint);
        [DllImport("user32")]
        public static extern short CascadeWindows(IntPtr hwndParent, int wHow, ref RECT lpRect, int cKids, ref int lpkids);
        [DllImport("user32")]
        public static extern short GetAsyncKeyState(int vKey);
        [DllImport("user32")]
        public static extern short GetKeyState(int nVirtKey);
        [DllImport("user32")]
        public static extern short GetWindowWord(IntPtr hwnd, int nIndex);
        [DllImport("user32")]
        public static extern short RegisterClassEx(ref WNDCLASSEX pcWndClassEx);
        [DllImport("user32")]
        public static extern short TileWindows(IntPtr hwndParent, int wHow, ref RECT lpRect, int cKids, ref int lpKids);
        [DllImport("user32")]
        public static extern short VkKeyScan(Byte cChar);
        [DllImport("user32")]
        public static extern short VkKeyScanEx(Byte ch, int dwhkl);
        [DllImport("user32")]
        public static extern string CharLower(string lpsz);
        [DllImport("user32")]
        public static extern string CharNext(string lpsz);
        [DllImport("user32")]
        public static extern string CharPrev(string lpszStart, string lpszCurrent);
        [DllImport("user32")]
        public static extern string CharUpper(string lpsz);
        [DllImport("user32")]
        public static extern void PostQuitMessage(int nExitCode);
        [DllImport("user32")]
        public static extern void keybd_event(Byte bVk, Byte bScan, int dwFlags, int dwExtraInfo);
        [DllImport("user32")]
        public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
        [DllImport("user32")]
        public static extern void SetDebugErrorLevel(int dwLevel);
        [DllImport("user32")]
        public static extern void SetLastErrorEx(int dwErrCode, int dwType);
        #endregion

        #region Gdi32
        [DllImport("gdi32")]
        public static extern int AbortDoc(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int AbortPath(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int AddFontResource(string lpFileName);
        [DllImport("gdi32")]
        public static extern int AngleArc(IntPtr hdc, int x, int y, int dwRadius, double eStartAngle, double eSweepAngle);
        [DllImport("gdi32")]
        public static extern int AnimatePalette(IntPtr hPalette, int wStartIndex, int wNumEntries, PALETTEENTRY[] lpPaletteColors);
        [DllImport("gdi32")]
        public static extern int Arc(IntPtr hdc, int X1, int Y1, int X2, int Y2, int X3, int Y3, int X4, int Y4);
        [DllImport("gdi32")]
        public static extern int ArcTo(IntPtr hdc, int X1, int Y1, int X2, int Y2, int X3, int Y3, int X4, int Y4);
        [DllImport("gdi32")]
        public static extern int BeginPath(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int BitBlt(IntPtr hDestDC, int x, int y, int nWidth, int nHeight, IntPtr hSrcDC, int xSrc, int ySrc, int dwRop);
        [DllImport("gdi32")]
        public static extern int CancelDC(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int CheckColorsInGamut(IntPtr hdc, IntPtr lpv, IntPtr lpv2, int dw);
        [DllImport("gdi32")]
        public static extern int ChoosePixelFormat(IntPtr hdc, ref PIXELFORMATDESCRIPTOR pPixelFormatDescriptor);
        [DllImport("gdi32")]
        public static extern int Chord(IntPtr hdc, int X1, int Y1, int X2, int Y2, int X3, int Y3, int X4, int Y4);
        [DllImport("gdi32")]
        public static extern int CloseEnhMetaFile(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int CloseFigure(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int CloseMetaFile(IntPtr hMF);
        [DllImport("gdi32")]
        public static extern int ColorMatchToTarget(IntPtr hdc, IntPtr hdc2, int dw);
        [DllImport("gdi32")]
        public static extern int CombineRgn(IntPtr hDestRgn, IntPtr hSrcRgn1, IntPtr hSrcRgn2, int nCombineMode);
        [DllImport("gdi32")]
        public static extern int CombineTransform(ref XFORM lpxformResult, ref XFORM lpxform1, ref XFORM lpxform2);
        [DllImport("gdi32")]
        public static extern int CopyEnhMetaFile(IntPtr hemfSrc, string lpszFile);
        [DllImport("gdi32")]
        public static extern int CopyMetaFile(IntPtr hMF, string lpFileName);
        [DllImport("gdi32")]
        public static extern IntPtr CreateBitmap(int nWidth, int nHeight, int nPlanes, int nBitCount, IntPtr lpBits);
        [DllImport("gdi32")]
        public static extern IntPtr CreateBitmapIndirect(ref BITMAP lpBitmap);
        [DllImport("gdi32")]
        public static extern IntPtr CreateBrushIndirect(ref LOGBRUSH lpLogBrush);
        [DllImport("gdi32")]
        public static extern IntPtr CreateColorSpace(ref LOGCOLORSPACE lplogcolorspace);
        [DllImport("gdi32")]
        public static extern IntPtr CreateCompatibleBitmap(IntPtr hdc, int nWidth, int nHeight);
        [DllImport("gdi32")]
        public static extern IntPtr CreateCompatibleDC(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern IntPtr CreateDC(string lpDriverName, string lpDeviceName, string lpOutput, ref DEVMODE lpInitData);
        [DllImport("gdi32")]
        public static extern IntPtr CreateDIBPatternBrush(IntPtr hPackedDIB, int wUsage);
        [DllImport("gdi32")]
        public static extern IntPtr CreateDIBPatternBrushPt(IntPtr lpPackedDIB, int iUsage);
        [DllImport("gdi32")]
        public static extern IntPtr CreateDIBitmap(IntPtr hdc, ref BITMAPINFOHEADER lpInfoHeader, int dwUsage, IntPtr lpInitBits, ref BITMAPINFO lpInitInfo, int wUsage);
        [DllImport("gdi32")]
        public static extern IntPtr CreateDiscardableBitmap(IntPtr hdc, int nWidth, int nHeight);
        [DllImport("gdi32")]
        public static extern IntPtr CreateEllipticRgn(int X1, int Y1, int X2, int Y2);
        [DllImport("gdi32")]
        public static extern IntPtr CreateEllipticRgnIndirect(ref RECT lpRect);
        [DllImport("gdi32")]
        public static extern IntPtr CreateEnhMetaFile(IntPtr hdcRef, string lpFileName, ref RECT lpRect, string lpDescription);
        [DllImport("gdi32")]
        public static extern IntPtr CreateFont(IntPtr h, int W, int E, int O, int W2, int I, int u, int S, int C, int OP, int CP, int Q, int PAF, string F);
        [DllImport("gdi32")]
        public static extern IntPtr CreateFontIndirect(ref LOGFONT lpLogFont);
        [DllImport("gdi32")]
        public static extern IntPtr CreateHalftonePalette(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern IntPtr CreateHatchBrush(int nIndex, int crColor);
        [DllImport("gdi32")]
        public static extern IntPtr CreateIC(string lpDriverName, string lpDeviceName, string lpOutput, ref DEVMODE lpInitData);
        [DllImport("gdi32")]
        public static extern IntPtr CreateMetaFile(string lpString);
        [DllImport("gdi32")]
        public static extern IntPtr CreatePalette(ref LOGPALETTE lpLogPalette);
        [DllImport("gdi32")]
        public static extern IntPtr CreatePatternBrush(IntPtr hBitmap);
        [DllImport("gdi32")]
        public static extern IntPtr CreatePen(int nPenStyle, int nWidth, int crColor);
        [DllImport("gdi32")]
        public static extern IntPtr CreatePenIndirect(ref LOGPEN lpLogPen);
        [DllImport("gdi32")]
        public static extern IntPtr CreatePolyPolygonRgn(ref POINT lpPoint, ref int lpPolyCounts, int nCount, int nPolyFillMode);
        [DllImport("gdi32")]
        public static extern IntPtr CreatePolygonRgn(ref POINT lpPoint, int nCount, int nPolyFillMode);
        [DllImport("gdi32")]
        public static extern IntPtr CreateRectRgn(int X1, int Y1, int X2, int Y2);
        [DllImport("gdi32")]
        public static extern IntPtr CreateRectRgnIndirect(ref RECT lpRect);
        [DllImport("gdi32")]
        public static extern IntPtr CreateRoundRectRgn(int X1, int Y1, int X2, int Y2, int X3, int Y3);
        [DllImport("gdi32")]
        public static extern IntPtr CreateScalableFontResource(int fHidden, string lpszResourceFile, string lpszFontFile, string lpszCurrentPath);
        [DllImport("gdi32")]
        public static extern IntPtr CreateSolidBrush(int crColor);
        [DllImport("gdi32")]
        public static extern int DPtoLP(IntPtr hdc, ref POINT lpPoint, int nCount);
        [DllImport("gdi32")]
        public static extern int DeleteColorSpace(IntPtr hcolorspace);
        [DllImport("gdi32")]
        public static extern int DeleteDC(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int DeleteEnhMetaFile(IntPtr hemf);
        [DllImport("gdi32")]
        public static extern int DeleteMetaFile(IntPtr hMF);
        [DllImport("gdi32")]
        public static extern int DeleteObject(IntPtr hObject);
        [DllImport("gdi32")]
        public static extern int DescribePixelFormat(IntPtr hdc, int n, int un, ref PIXELFORMATDESCRIPTOR lpPixelFormatDescriptor);
        [DllImport("gdi32")]
        public static extern int DrawEscape(IntPtr hdc, int nEscape, int cbInput, string lpszInData);
        [DllImport("gdi32")]
        public static extern int Ellipse(IntPtr hdc, int X1, int Y1, int X2, int Y2);
        [DllImport("gdi32")]
        public static extern int EndDoc(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int EndPage(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int EndPath(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int EnumEnhMetaFile(IntPtr hdc, IntPtr hemf, ref int lpEnhMetaFunc, IntPtr lpData, ref RECT lpRect);
        [DllImport("gdi32")]
        public static extern int EnumFontFamilies(IntPtr hdc, string lpszFamily, ref int lpEnumFontFamProc, int lParam);
        [DllImport("gdi32")]
        public static extern int EnumFontFamiliesEx(IntPtr hdc, ref LOGFONT lpLogFont, ref int lpEnumFontProc, int lParam, int dw);
        [DllImport("gdi32")]
        public static extern int EnumFonts(IntPtr hdc, string lpsz, ref int lpFontEnumProc, int lParam);
        [DllImport("gdi32")]
        public static extern int EnumICMProfiles(IntPtr hdc, int icmEnumProc, int lParam);
        [DllImport("gdi32")]
        public static extern int EnumMetaFile(IntPtr hdc, IntPtr hMetafile, ref int lpMFEnumProc, int lParam);
        [DllImport("gdi32")]
        public static extern int EnumObjects(IntPtr hdc, int n, ref int lpGOBJEnumProc, IntPtr lpVoid);
        [DllImport("gdi32")]
        public static extern int EqualRgn(IntPtr hSrcRgn1, IntPtr hSrcRgn2);
        [DllImport("gdi32")]
        public static extern int Escape(IntPtr hdc, int nEscape, int nCount, string lpInData, IntPtr lpOutData);
        [DllImport("gdi32")]
        public static extern int ExcludeClipRect(IntPtr hdc, int X1, int Y1, int X2, int Y2);
        [DllImport("gdi32")]
        public static extern int ExtCreatePen(int dwPenStyle, int dwWidth, ref LOGBRUSH lplb, int dwStyleCount, ref int lpStyle);
        [DllImport("gdi32")]
        public static extern int ExtCreateRegion(ref XFORM lpXform, int nCount, ref RGNDATA lpRgnData);
        [DllImport("gdi32")]
        public static extern int ExtEscape(IntPtr hdc, int nEscape, int cbInput, string lpszInData, int cbOutput, string lpszOutData);
        [DllImport("gdi32")]
        public static extern int ExtFloodFill(IntPtr hdc, int x, int y, int crColor, int wFillType);
        [DllImport("gdi32")]
        public static extern int ExtSelectClipRgn(IntPtr hdc, IntPtr hRgn, int fnMode);
        [DllImport("gdi32")]
        public static extern int ExtTextOut(IntPtr hdc, int x, int y, int wOptions, ref RECT lpRect, string lpString, int nCount, ref int lpDx);
        [DllImport("gdi32")]
        public static extern int FillPath(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int FillRgn(IntPtr hdc, IntPtr hRgn, IntPtr hBrush);
        [DllImport("gdi32")]
        public static extern int FixBrushOrgEx(IntPtr hdc, int n1, int n2, ref POINT lpPoint);
        [DllImport("gdi32")]
        public static extern int FlattenPath(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int FloodFill(IntPtr hdc, int x, int y, int crColor);
        [DllImport("gdi32")]
        public static extern int FrameRgn(IntPtr hdc, IntPtr hRgn, IntPtr hBrush, int nWidth, int nHeight);
        [DllImport("gdi32")]
        public static extern int GdiComment(IntPtr hdc, int cbSize, Byte lpData);
        [DllImport("gdi32")]
        public static extern int GdiFlush();
        [DllImport("gdi32")]
        public static extern int GdiGetBatchLimit();
        [DllImport("gdi32")]
        public static extern int GdiSetBatchLimit(int dwLimit);
        [DllImport("gdi32")]
        public static extern int GetArcDirection(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetAspectRatioFilterEx(IntPtr hdc, ref SIZE lpAspectRatio);
        [DllImport("gdi32")]
        public static extern int GetBitmapBits(IntPtr hBitmap, int dwCount, IntPtr lpBits);
        [DllImport("gdi32")]
        public static extern int GetBitmapDimensionEx(IntPtr hBitmap, ref SIZE lpDimension);
        [DllImport("gdi32")]
        public static extern int GetBkColor(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetBkMode(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetBoundsRect(IntPtr hdc, ref RECT lprcBounds, int flags);
        [DllImport("gdi32")]
        public static extern int GetBrushOrgEx(IntPtr hdc, ref POINT lpPoint);
        [DllImport("gdi32")]
        public static extern int GetCharABCWidths(IntPtr hdc, int uFirstChar, int uLastChar, ref ABC lpabc);
        [DllImport("gdi32")]
        public static extern int GetCharABCWidthsFloat(IntPtr hdc, int iFirstChar, int iLastChar, ref ABCFLOAT lpABCF);
        [DllImport("gdi32")]
        public static extern int GetCharWidth(IntPtr hdc, int wFirstChar, int wLastChar, int[] lpBuffer);
        [DllImport("gdi32")]
        public static extern int GetCharWidth32(IntPtr hdc, int iFirstChar, int iLastChar, int[] lpBuffer);
        [DllImport("gdi32")]
        public static extern int GetCharWidthFloat(IntPtr hdc, int iFirstChar, int iLastChar, double[] pxBuffer);
        [DllImport("gdi32")]
        public static extern int GetCharacterPlacement(IntPtr hdc, string lpsz, int n1, int n2, ref GCP_RESULTS lpGcpResults, int dw);
        [DllImport("gdi32")]
        public static extern int GetClipBox(IntPtr hdc, ref RECT lpRect);
        [DllImport("gdi32")]
        public static extern int GetClipRgn(IntPtr hdc, IntPtr hRgn);
        [DllImport("gdi32")]
        public static extern int GetColorAdjustment(IntPtr hdc, ref COLORADJUSTMENT lpca);
        [DllImport("gdi32")]
        public static extern int GetColorSpace(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetCurrentObject(IntPtr hdc, int uObjectType);
        [DllImport("gdi32")]
        public static extern int GetCurrentPositionEx(IntPtr hdc, ref POINT lpPoint);
        [DllImport("gdi32")]
        public static extern int GetDCOrgEx(IntPtr hdc, ref POINT lpPoint);
        [DllImport("gdi32")]
        public static extern int GetDIBColorTable(IntPtr hdc, int un1, int un2, ref RGBQUAD pRGBQuad);
        [DllImport("gdi32")]
        public static extern int GetDIBits(int aHDC, IntPtr hBitmap, int nStartScan, int nNumScans, IntPtr lpBits, ref BITMAPINFO lpBI, int wUsage);
        [DllImport("gdi32")]
        public static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
        [DllImport("gdi32")]
        public static extern int GetDeviceGammaRamp(IntPtr hdc, IntPtr lpv);
        [DllImport("gdi32")]
        public static extern int GetEnhMetaFile(string lpszMetaFile);
        [DllImport("gdi32")]
        public static extern int GetEnhMetaFileBits(IntPtr hemf, int cbBuffer, Byte lpbBuffer);
        [DllImport("gdi32")]
        public static extern int GetEnhMetaFileDescription(IntPtr hemf, int cchBuffer, string lpszDescription);
        [DllImport("gdi32")]
        public static extern int GetEnhMetaFileHeader(IntPtr hemf, int cbBuffer, ref ENHMETAHEADER lpemh);
        [DllImport("gdi32")]
        public static extern int GetEnhMetaFilePaletteEntries(IntPtr hemf, int cEntries, ref PALETTEENTRY lppe);
        [DllImport("gdi32")]
        public static extern int GetFontData(IntPtr hdc, int dwTable, int dwOffset, IntPtr lpvBuffer, int cbData);
        [DllImport("gdi32")]
        public static extern int GetFontLanguageInfo(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetGlyphOutline(IntPtr hdc, int uChar, int fuFormat, ref GLYPHMETRICS lpgm, int cbBuffer, IntPtr lpBuffer, ref MAT2 lpmat2);
        [DllImport("gdi32")]
        public static extern int GetGraphicsMode(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetICMProfile(IntPtr hdc, int dw, string lpStr);
        [DllImport("gdi32")]
        public static extern int GetKerningPairs(IntPtr hdc, int cPairs, ref KERNINGPAIR lpkrnpair);
        [DllImport("gdi32")]
        public static extern int GetLogColorSpace(IntPtr hcolorspace, ref LOGCOLORSPACE lplogcolorspace, int dw);
        [DllImport("gdi32")]
        public static extern int GetMapMode(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetMetaFile(string lpFileName);
        [DllImport("gdi32")]
        public static extern int GetMetaFileBitsEx(IntPtr hMF, int nSize, IntPtr lpvData);
        [DllImport("gdi32")]
        public static extern int GetMetaRgn(IntPtr hdc, IntPtr hRgn);
        [DllImport("gdi32")]
        public static extern int GetMiterLimit(IntPtr hdc, double peLimit);
        [DllImport("gdi32")]
        public static extern int GetNearestColor(IntPtr hdc, int crColor);
        [DllImport("gdi32")]
        public static extern int GetNearestPaletteIndex(IntPtr hPalette, int crColor);
        [DllImport("gdi32")]
        public static extern int GetObject(IntPtr hObject, int nCount, IntPtr lpObject);
        [DllImport("gdi32")]
        public static extern int GetObjectType(IntPtr hgdiobj);
        [DllImport("gdi32")]
        public static extern int GetOutlineTextMetrics(IntPtr hdc, int cbData, ref OUTLINETEXTMETRIC lpotm);
        [DllImport("gdi32")]
        public static extern int GetPaletteEntries(IntPtr hPalette, int wStartIndex, int wNumEntries, ref PALETTEENTRY lpPaletteEntries);
        [DllImport("gdi32")]
        public static extern int GetPath(IntPtr hdc, ref POINT lpPoint, Byte lpTypes, int nSize);
        [DllImport("gdi32")]
        public static extern int GetPixel(IntPtr hdc, int x, int y);
        [DllImport("gdi32")]
        public static extern int GetPixelFormat(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetPolyFillMode(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetROP2(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetRasterizerCaps(ref RASTERIZER_STATUS lpraststat, int cb);
        [DllImport("gdi32")]
        public static extern int GetRegionData(IntPtr hRgn, int dwCount, ref RGNDATA lpRgnData);
        [DllImport("gdi32")]
        public static extern int GetRgnBox(IntPtr hRgn, ref RECT lpRect);
        [DllImport("gdi32")]
        public static extern int GetStockObject(int nIndex);
        [DllImport("gdi32")]
        public static extern int GetStretchBltMode(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetSystemPaletteEntries(IntPtr hdc, int wStartIndex, int wNumEntries, ref PALETTEENTRY lpPaletteEntries);
        [DllImport("gdi32")]
        public static extern int GetSystemPaletteUse(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetTextAlign(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetTextCharacterExtra(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetTextCharset(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetTextCharsetInfo(IntPtr hdc, ref FONTSIGNATURE lpSig, int dwFlags);
        [DllImport("gdi32")]
        public static extern int GetTextColor(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int GetTextExtentExPoint(IntPtr hdc, string lpszStr, int cchString, int nMaxExtent, ref int lpnFit, int alpDx, ref SIZE lpSize);
        [DllImport("gdi32")]
        public static extern int GetTextExtentPoint(IntPtr hdc, string lpszString, int cbString, ref SIZE lpSize);
        [DllImport("gdi32")]
        public static extern int GetTextExtentPoint32(IntPtr hdc, string lpsz, int cbString, ref SIZE lpSize);
        [DllImport("gdi32")]
        public static extern int GetTextFace(IntPtr hdc, int nCount, string lpFacename);
        [DllImport("gdi32")]
        public static extern int GetTextMetrics(IntPtr hdc, ref TEXTMETRIC lpMetrics);
        [DllImport("gdi32")]
        public static extern int GetViewportExtEx(IntPtr hdc, ref SIZE lpSize);
        [DllImport("gdi32")]
        public static extern int GetViewportOrgEx(IntPtr hdc, ref POINT lpPoint);
        [DllImport("gdi32")]
        public static extern int GetWinMetaFileBits(IntPtr hemf, int cbBuffer, Byte lpbBuffer, int fnMapMode, IntPtr hdcRef);
        [DllImport("gdi32")]
        public static extern int GetWindowExtEx(IntPtr hdc, ref SIZE lpSize);
        [DllImport("gdi32")]
        public static extern int GetWindowOrgEx(IntPtr hdc, ref POINT lpPoint);
        [DllImport("gdi32")]
        public static extern int GetWorldTransform(IntPtr hdc, ref XFORM lpXform);
        [DllImport("gdi32")]
        public static extern int IntersectClipRect(IntPtr hdc, int X1, int Y1, int X2, int Y2);
        [DllImport("gdi32")]
        public static extern int InvertRgn(IntPtr hdc, IntPtr hRgn);
        [DllImport("gdi32")]
        public static extern int LPtoDP(IntPtr hdc, ref POINT lpPoint, int nCount);
        [DllImport("gdi32")]
        public static extern int LineDDA(int n1, int n2, int n3, int n4, ref int lpLineDDAProc, int lParam);
        [DllImport("gdi32")]
        public static extern int LineTo(IntPtr hdc, int x, int y);
        [DllImport("gdi32")]
        public static extern int MaskBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, IntPtr hbmMask, int xMask, int yMask, int dwRop);
        [DllImport("gdi32")]
        public static extern int ModifyWorldTransform(IntPtr hdc, ref XFORM lpXform, int iMode);
        [DllImport("gdi32")]
        public static extern int MoveToEx(IntPtr hdc, int x, int y, ref POINT lpPoint);
        [DllImport("gdi32")]
        public static extern int OffsetClipRgn(IntPtr hdc, int x, int y);
        [DllImport("gdi32")]
        public static extern int OffsetRgn(IntPtr hRgn, int x, int y);
        [DllImport("gdi32")]
        public static extern int OffsetViewportOrgEx(IntPtr hdc, int nX, int nY, ref POINT lpPoint);
        [DllImport("gdi32")]
        public static extern int OffsetWindowOrgEx(IntPtr hdc, int nX, int nY, ref POINT lpPoint);
        [DllImport("gdi32")]
        public static extern int PaintRgn(IntPtr hdc, IntPtr hRgn);
        [DllImport("gdi32")]
        public static extern int PatBlt(IntPtr hdc, int x, int y, int nWidth, int nHeight, int dwRop);
        [DllImport("gdi32")]
        public static extern int PathToRegion(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int Pie(IntPtr hdc, int X1, int Y1, int X2, int Y2, int X3, int Y3, int X4, int Y4);
        [DllImport("gdi32")]
        public static extern int PlayEnhMetaFile(IntPtr hdc, IntPtr hemf, ref RECT lpRect);
        [DllImport("gdi32")]
        public static extern int PlayEnhMetaFileRecord(IntPtr hdc, ref HANDLETABLE lpHandletable, ref ENHMETARECORD lpEnhMetaRecord, int nHandles);
        [DllImport("gdi32")]
        public static extern int PlayMetaFile(IntPtr hdc, IntPtr hMF);
        [DllImport("gdi32")]
        public static extern int PlayMetaFileRecord(IntPtr hdc, ref HANDLETABLE lpHandletable, ref METARECORD lpMetaRecord, int nHandles);
        [DllImport("gdi32")]
        public static extern int PlgBlt(IntPtr hdcDest, ref POINT lpPoint, IntPtr hdcSrc, int nXSrc, int nYSrc, int nWidth, int nHeight, IntPtr hbmMask, int xMask, int yMask);
        [DllImport("gdi32")]
        public static extern int PolyBezier(IntPtr hdc, ref POINT lppt, int cPoints);
        [DllImport("gdi32")]
        public static extern int PolyBezierTo(IntPtr hdc, ref POINT lppt, int cCount);
        [DllImport("gdi32")]
        public static extern int PolyDraw(IntPtr hdc, ref POINT lppt, Byte lpbTypes, int cCount);
        [DllImport("gdi32")]
        public static extern int PolyPolygon(IntPtr hdc, ref POINT lpPoint, ref int lpPolyCounts, int nCount);
        [DllImport("gdi32")]
        public static extern int PolyPolyline(IntPtr hdc, ref POINT lppt, ref int lpdwPolyPoints, int cCount);
        [DllImport("gdi32")]
        public static extern int PolyTextOut(IntPtr hdc, ref POLYTEXT pptxt, int cStrings);
        [DllImport("gdi32")]
        public static extern int Polygon(IntPtr hdc, ref POINT lpPoint, int nCount);
        [DllImport("gdi32")]
        public static extern int Polyline(IntPtr hdc, ref POINT lpPoint, int nCount);
        [DllImport("gdi32")]
        public static extern int PolylineTo(IntPtr hdc, ref POINT lppt, int cCount);
        [DllImport("gdi32")]
        public static extern int PtInRegion(IntPtr hRgn, int x, int y);
        [DllImport("gdi32")]
        public static extern int PtVisible(IntPtr hdc, int x, int y);
        [DllImport("gdi32")]
        public static extern int RealizePalette(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int RectInRegion(IntPtr hRgn, ref RECT lpRect);
        [DllImport("gdi32")]
        public static extern int RectVisible(IntPtr hdc, ref RECT lpRect);
        [DllImport("gdi32")]
        public static extern int Rectangle(IntPtr hdc, int X1, int Y1, int X2, int Y2);
        [DllImport("gdi32")]
        public static extern int RemoveFontResource(string lpFileName);
        [DllImport("gdi32")]
        public static extern int ResetDC(IntPtr hdc, ref DEVMODE lpInitData);
        [DllImport("gdi32")]
        public static extern int ResizePalette(IntPtr hPalette, int nNumEntries);
        [DllImport("gdi32")]
        public static extern int RestoreDC(IntPtr hdc, int nSavedDC);
        [DllImport("gdi32")]
        public static extern int RoundRect(IntPtr hdc, int X1, int Y1, int X2, int Y2, int X3, int Y3);
        [DllImport("gdi32")]
        public static extern int SaveDC(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int ScaleViewportExtEx(IntPtr hdc, int nXnum, int nXdenom, int nYnum, int nYdenom, ref SIZE lpSize);
        [DllImport("gdi32")]
        public static extern int ScaleWindowExtEx(IntPtr hdc, int nXnum, int nXdenom, int nYnum, int nYdenom, ref SIZE lpSize);
        [DllImport("gdi32")]
        public static extern int SelectClipPath(IntPtr hdc, int iMode);
        [DllImport("gdi32")]
        public static extern int SelectClipRgn(IntPtr hdc, IntPtr hRgn);
        [DllImport("gdi32")]
        public static extern IntPtr SelectObject(IntPtr hdc, IntPtr hObject);
        [DllImport("gdi32")]
        public static extern int SelectPalette(IntPtr hdc, IntPtr hPalette, int bForceBackground);
        [DllImport("gdi32")]
        public static extern int SetAbortProc(IntPtr hdc, ref int lpAbortProc);
        [DllImport("gdi32")]
        public static extern int SetArcDirection(IntPtr hdc, int ArcDirection);
        [DllImport("gdi32")]
        public static extern int SetBitmapBits(IntPtr hBitmap, int dwCount, IntPtr lpBits);
        [DllImport("gdi32")]
        public static extern int SetBitmapDimensionEx(IntPtr hbm, int nX, int nY, ref SIZE lpSize);
        [DllImport("gdi32")]
        public static extern int SetBkColor(IntPtr hdc, int crColor);
        [DllImport("gdi32")]
        public static extern int SetBkMode(IntPtr hdc, int nBkMode);
        [DllImport("gdi32")]
        public static extern int SetBoundsRect(IntPtr hdc, ref RECT lprcBounds, int flags);
        [DllImport("gdi32")]
        public static extern int SetBrushOrgEx(IntPtr hdc, int nXOrg, int nYOrg, ref POINT lppt);
        [DllImport("gdi32")]
        public static extern int SetColorAdjustment(IntPtr hdc, ref COLORADJUSTMENT lpca);
        [DllImport("gdi32")]
        public static extern int SetColorSpace(IntPtr hdc, IntPtr hcolorspace);
        [DllImport("gdi32")]
        public static extern int SetDIBColorTable(IntPtr hdc, int un1, int un2, ref RGBQUAD pcRGBQuad);
        [DllImport("gdi32")]
        public static extern int SetDIBits(IntPtr hdc, IntPtr hBitmap, int nStartScan, int nNumScans, IntPtr lpBits, ref BITMAPINFO lpBI, int wUsage);
        [DllImport("gdi32")]
        public static extern int SetDIBitsToDevice(IntPtr hdc, int x, int y, int dx, int dy, int SrcX, int SrcY, int Scan, int NumScans, IntPtr Bits, BITMAPINFO BitsInfo, int wUsage);
        [DllImport("gdi32")]
        public static extern int SetDeviceGammaRamp(IntPtr hdc, IntPtr lpv);
        [DllImport("gdi32")]
        public static extern int SetEnhMetaFileBits(int cbBuffer, Byte lpData);
        [DllImport("gdi32")]
        public static extern int SetGraphicsMode(IntPtr hdc, int iMode);
        [DllImport("gdi32")]
        public static extern int SetICMMode(IntPtr hdc, int n);
        [DllImport("gdi32")]
        public static extern int SetICMProfile(IntPtr hdc, string lpStr);
        [DllImport("gdi32")]
        public static extern int SetMapMode(IntPtr hdc, int nMapMode);
        [DllImport("gdi32")]
        public static extern int SetMapperFlags(IntPtr hdc, int dwFlag);
        [DllImport("gdi32")]
        public static extern int SetMetaFileBitsEx(int nSize, Byte lpData);
        [DllImport("gdi32")]
        public static extern int SetMetaRgn(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int SetMiterLimit(IntPtr hdc, double eNewLimit, double peOldLimit);
        [DllImport("gdi32")]
        public static extern int SetPaletteEntries(IntPtr hPalette, int wStartIndex, int wNumEntries, ref PALETTEENTRY lpPaletteEntries);
        [DllImport("gdi32")]
        public static extern int SetPixel(IntPtr hdc, int x, int y, int crColor);
        [DllImport("gdi32")]
        public static extern int SetPixelFormat(IntPtr hdc, int n, ref PIXELFORMATDESCRIPTOR pcPixelFormatDescriptor);
        [DllImport("gdi32")]
        public static extern int SetPixelV(IntPtr hdc, int x, int y, int crColor);
        [DllImport("gdi32")]
        public static extern int SetPolyFillMode(IntPtr hdc, int nPolyFillMode);
        [DllImport("gdi32")]
        public static extern int SetROP2(IntPtr hdc, int nDrawMode);
        [DllImport("gdi32")]
        public static extern int SetRectRgn(IntPtr hRgn, int X1, int Y1, int X2, int Y2);
        [DllImport("gdi32")]
        public static extern int SetStretchBltMode(IntPtr hdc, int nStretchMode);
        [DllImport("gdi32")]
        public static extern int SetSystemPaletteUse(IntPtr hdc, int wUsage);
        [DllImport("gdi32")]
        public static extern int SetTextAlign(IntPtr hdc, int wFlags);
        [DllImport("gdi32")]
        public static extern int SetTextCharacterExtra(IntPtr hdc, int nCharExtra);
        [DllImport("gdi32")]
        public static extern int SetTextColor(IntPtr hdc, int crColor);
        [DllImport("gdi32")]
        public static extern int SetTextJustification(IntPtr hdc, int nBreakExtra, int nBreakCount);
        [DllImport("gdi32")]
        public static extern int SetViewportExtEx(IntPtr hdc, int nX, int nY, ref SIZE lpSize);
        [DllImport("gdi32")]
        public static extern int SetViewportOrgEx(IntPtr hdc, int nX, int nY, ref POINT lpPoint);
        [DllImport("gdi32")]
        public static extern int SetWinMetaFileBits(int cbBuffer, Byte lpbBuffer, IntPtr hdcRef, ref METAFILEPICT lpmfp);
        [DllImport("gdi32")]
        public static extern int SetWindowExtEx(IntPtr hdc, int nX, int nY, ref SIZE lpSize);
        [DllImport("gdi32")]
        public static extern int SetWindowOrgEx(IntPtr hdc, int nX, int nY, ref POINT lpPoint);
        [DllImport("gdi32")]
        public static extern int SetWorldTransform(IntPtr hdc, ref XFORM lpXform);
        [DllImport("gdi32")]
        public static extern int StartDoc(IntPtr hdc, ref DOCINFO lpdi);
        [DllImport("gdi32")]
        public static extern int StartPage(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int StretchBlt(IntPtr hdc, int x, int y, int nWidth, int nHeight, IntPtr hSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, int dwRop);
        [DllImport("gdi32")]
        public static extern int StretchDIBits(IntPtr hdc, int x, int y, int dx, int dy, int SrcX, int SrcY, int wSrcWidth, int wSrcHeight, IntPtr lpBits, ref BITMAPINFO lpBitsInfo, int wUsage, int dwRop);
        [DllImport("gdi32")]
        public static extern int StrokeAndFillPath(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int StrokePath(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int SwapBuffers(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int TextOut(IntPtr hdc, int x, int y, string lpString, int nCount);
        [DllImport("gdi32")]
        public static extern int TranslateCharsetInfo(int lpSrc, ref CHARSETINFO lpcs, int dwFlags);
        [DllImport("gdi32")]
        public static extern int UnrealizeObject(IntPtr hObject);
        [DllImport("gdi32")]
        public static extern int UpdateColors(IntPtr hdc);
        [DllImport("gdi32")]
        public static extern int WidenPath(IntPtr hdc);
        [DllImport("gdi32.dll")]
        public static extern IntPtr CreateDIBSection(IntPtr hdc, [In,
            MarshalAs(UnmanagedType.LPStruct)] BITMAPINFO pbmi, int iUsage, out IntPtr
            ppvBits, IntPtr hSection, int dwOffset);
        #endregion

        #region ComCtl32
        [DllImport("comctl32.dll")]
        public static extern bool ImageList_Add(IntPtr hImageList, IntPtr hBitmap,
            IntPtr hMask);
        [DllImport("ComCtl32.dll")]
        public static extern IntPtr ImageList_Create(int cx, int cy, int flags, int cInitial, int cGrow);


        [DllImport("ComCtl32.dll")]
        public static extern bool ImageList_Destroy(IntPtr himl);


        [DllImport("ComCtl32.dll")]
        public static extern int ImageList_GetImageCount(IntPtr himl);

        [DllImport("comctl32.dll")]
        public static extern int InitCommonControlsEx(ref INITCOMMONCONTROLSEX_STRUCT icc);

        [DllImport("comctl32.dll")]
        public extern static int DllGetVersion(ref DLLVERSIONINFO dvi);

        [DllImport("COMCTL32")]
        public static extern int ImageList_AddIcon(IntPtr himl, IntPtr hIcon);
        [DllImport("COMCTL32")]
        public static extern int ImageList_Draw(IntPtr hIMAGELIST, int ImgIndex, IntPtr hdcDest, int xDest, int yDest, int lStyle);
        [DllImport("COMCTL32")]
        public static extern int ImageList_GetIcon(IntPtr hIMAGELIST, int ImgIndex, IntPtr hbmMask);
        [DllImport("COMCTL32")]
        public static extern int InitCommonControls();

        [DllImport("comctl32.dll", CharSet = CharSet.Auto)]
        public static extern bool ImageList_DrawIndirect(ref IMAGELISTDRAWPARAMS pimldp);
        #endregion

        #region AdvApi32
        [DllImport("advapi32")]
        public static extern int SetServiceBits(IntPtr hServiceStatus, int dwServiceBits, int bSetBitsOn, int bUpdateImmediately);
        [DllImport("AdvApi32")]
        public static extern int ImpersonateLoggedOnUser(IntPtr hToken);
        [DllImport("advapi32")]
        public static extern int IsTextUnicode(IntPtr lpBuffer, int cb, ref int lpi);
        [DllImport("advapi32")]
        public static extern int LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref int phToken);
        [DllImport("advapi32")]
        public static extern int NotifyChangeEventLog(IntPtr hEventLog, IntPtr hEvent);
        [DllImport("advapi32")]
        public static extern int SetThreadToken(int Thread, int Token);
        [DllImport("advapi32")]
        public static extern Byte GetSidSubAuthorityCount(IntPtr pSid);
        [DllImport("advapi32")]
        public static extern SID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority(IntPtr pSid);
        [DllImport("advapi32")]
        public static extern int AbortSystemShutdown(string lpMachineName);
        [DllImport("advapi32")]
        public static extern int AccessCheck(ref SECURITY_DESCRIPTOR pSecurityDescriptor, int ClientToken, int DesiredAccess, GENERIC_MAPPING GenericMapping, PRIVILEGE_SET PrivilegeSet, int PrivilegeSetLength, int GrantedAccess, int Status);
        [DllImport("advapi32")]
        public static extern int AccessCheckAndAuditAlarm(string SubsystemName, IntPtr HandleId, string ObjectTypeName, string ObjectName, SECURITY_DESCRIPTOR SecurityDescriptor, int DesiredAccess, GENERIC_MAPPING GenericMapping, int ObjectCreation, int GrantedAccess, int AccessStatus, ref int pfGenerateOnClose);
        [DllImport("advapi32")]
        public static extern int AddAccessAllowedAce(ref ACL pAcl, int dwAceRevision, int AccessMask, IntPtr pSid);
        [DllImport("advapi32")]
        public static extern int AddAccessDeniedAce(ref ACL pAcl, int dwAceRevision, int AccessMask, IntPtr pSid);
        [DllImport("advapi32")]
        public static extern int AddAce(ref ACL pAcl, int dwAceRevision, int dwStartingAceIndex, IntPtr pAceList, int nAceListLength);
        [DllImport("advapi32")]
        public static extern int AddAuditAccessAce(ref ACL pAcl, int dwAceRevision, int dwAccessMask, IntPtr pSid, int bAuditSuccess, int bAuditFailure);
        [DllImport("advapi32")]
        public static extern int AdjustTokenGroups(int TokenHandle, int ResetToDefault, TOKEN_GROUPS NewState, int BufferLength, TOKEN_GROUPS PreviousState, int ReturnLength);
        [DllImport("advapi32")]
        public static extern int AdjustTokenPrivileges(int TokenHandle, int DisableAllPrivileges, TOKEN_PRIVILEGES NewState, int BufferLength, TOKEN_PRIVILEGES PreviousState, int ReturnLength);
        [DllImport("advapi32")]
        public static extern int AllocateAndInitializeSid(ref SID_IDENTIFIER_AUTHORITY pIdentifierAuthority, Byte nSubAuthorityCount, int nSubAuthority0, int nSubAuthority1, int nSubAuthority2, int nSubAuthority3, int nSubAuthority4, int nSubAuthority5, int nSubAuthority6, int nSubAuthority7, ref int lpPSid);
        [DllImport("advapi32")]
        public static extern int AllocateLocallyUniqueId(LARGE_INTEGER Luid);
        [DllImport("advapi32")]
        public static extern int AreAllAccessesGranted(int GrantedAccess, int DesiredAccess);
        [DllImport("advapi32")]
        public static extern int AreAnyAccessesGranted(int GrantedAccess, int DesiredAccess);
        [DllImport("advapi32")]
        public static extern int BackupEventLog(IntPtr hEventLog, string lpBackupFileName);
        [DllImport("advapi32")]
        public static extern int ChangeServiceConfig(IntPtr hService, int dwServiceType, int dwStartType, int dwErrorControl, string lpBinaryPathName, string lpLoadOrderGroup, ref int lpdwTagId, string lpDependencies, string lpServiceStartName, string lpPassword, string lpDisplayName);
        [DllImport("advapi32")]
        public static extern int ClearEventLog(IntPtr hEventLog, string lpBackupFileName);
        [DllImport("advapi32")]
        public static extern int CloseEventLog(IntPtr hEventLog);
        [DllImport("advapi32")]
        public static extern int CloseServiceHandle(IntPtr hSCObject);
        [DllImport("advapi32")]
        public static extern int ControlService(IntPtr hService, int dwControl, ref SERVICE_STATUS lpServiceStatus);
        [DllImport("advapi32")]
        public static extern int CopySid(int nDestinationSidLength, IntPtr pDestinationSid, IntPtr pSourceSid);
        [DllImport("advapi32")]
        public static extern int CreatePrivateObjectSecurity(ref SECURITY_DESCRIPTOR ParentDescriptor, SECURITY_DESCRIPTOR CreatorDescriptor, SECURITY_DESCRIPTOR NewDescriptor, int IsDirectoryObject, int Token, GENERIC_MAPPING GenericMapping);
        [DllImport("advapi32")]
        public static extern int CreateProcessAsUser(IntPtr hToken, string lpApplicationName, string lpCommandLine, ref SECURITY_ATTRIBUTES lpProcessAttributes, ref SECURITY_ATTRIBUTES lpThreadAttributes, int bInheritHandles, int dwCreationFlags, string lpEnvironment, string lpCurrentDirectory, ref STARTUPINFO lpStartupInfo, ref PROCESS_INFORMATION lpProcessInformation);
        [DllImport("advapi32")]
        public static extern int CreateService(IntPtr hSCManager, string lpServiceName, string lpDisplayName, int dwDesiredAccess, int dwServiceType, int dwStartType, int dwErrorControl, string lpBinaryPathName, string lpLoadOrderGroup, ref int lpdwTagId, string lpDependencies, string lp, string lpPassword);
        [DllImport("advapi32")]
        public static extern int DeleteAce(ref ACL pAcl, int dwAceIndex);
        [DllImport("advapi32")]
        public static extern int DeleteService(IntPtr hService);
        [DllImport("advapi32")]
        public static extern int DeregisterEventSource(IntPtr hEventLog);
        [DllImport("advapi32")]
        public static extern int DestroyPrivateObjectSecurity(ref SECURITY_DESCRIPTOR ObjectDescriptor);
        [DllImport("advapi32")]
        public static extern int DuplicateToken(int ExistingTokenHandle, short ImpersonationLevel, int DuplicateTokenHandle);
        [DllImport("advapi32")]
        public static extern int EnumDependentServices(IntPtr hService, int dwServiceState, ref ENUM_SERVICE_STATUS lpServices, int cbBufSize, ref int pcbBytesNeeded, ref int lpServicesReturned);
        [DllImport("advapi32")]
        public static extern int EnumServicesStatus(IntPtr hSCManager, int dwServiceType, int dwServiceState, ref ENUM_SERVICE_STATUS lpServices, int cbBufSize, ref int pcbBytesNeeded, ref int lpServicesReturned, ref int lpResumeHandle);
        [DllImport("advapi32")]
        public static extern int EqualPrefixSid(IntPtr pSid1, IntPtr pSid2);
        [DllImport("advapi32")]
        public static extern int EqualSid(IntPtr pSid1, IntPtr pSid2);
        [DllImport("advapi32")]
        public static extern int FindFirstFreeAce(ref ACL pAcl, ref int pAce);
        [DllImport("advapi32")]
        public static extern int GetAce(ref ACL pAcl, int dwAceIndex, IntPtr pAce);
        [DllImport("advapi32")]
        public static extern int GetAclInformation(ref ACL pAcl, IntPtr pAclInformation, int nAclInformationLength, short dwAclInformationClass);
        [DllImport("advapi32")]
        public static extern int GetFileSecurity(string lpFileName, int RequestedInformation, ref SECURITY_DESCRIPTOR pSecurityDescriptor, int nLength, ref int lpnLengthNeeded);
        [DllImport("advapi32")]
        public static extern int GetKernelObjectSecurity(IntPtr handle, int RequestedInformation, ref SECURITY_DESCRIPTOR pSecurityDescriptor, int nLength, ref int lpnLengthNeeded);
        [DllImport("advapi32")]
        public static extern int GetLengthSid(IntPtr pSid);
        [DllImport("advapi32")]
        public static extern int GetNumberOfEventLogRecords(IntPtr hEventLog, int NumberOfRecords);
        [DllImport("advapi32")]
        public static extern int GetOldestEventLogRecord(IntPtr hEventLog, int OldestRecord);
        [DllImport("advapi32")]
        public static extern int GetPrivateObjectSecurity(ref SECURITY_DESCRIPTOR ObjectDescriptor, int SecurityInformation, SECURITY_DESCRIPTOR ResultantDescriptor, int DescriptorLength, int ReturnLength);
        [DllImport("advapi32")]
        public static extern int GetSecurityDescriptorControl(ref SECURITY_DESCRIPTOR pSecurityDescriptor, short pControl, ref int lpdwRevision);
        [DllImport("advapi32")]
        public static extern int GetSecurityDescriptorDacl(ref SECURITY_DESCRIPTOR pSecurityDescriptor, ref int lpbDaclPresent, ref ACL pDacl, ref int lpbDaclDefaulted);
        [DllImport("advapi32")]
        public static extern int GetSecurityDescriptorGroup(ref SECURITY_DESCRIPTOR pSecurityDescriptor, IntPtr pGroup, ref int lpbGroupDefaulted);
        [DllImport("advapi32")]
        public static extern int GetSecurityDescriptorLength(ref SECURITY_DESCRIPTOR pSecurityDescriptor);
        [DllImport("advapi32")]
        public static extern int GetSecurityDescriptorOwner(ref SECURITY_DESCRIPTOR pSecurityDescriptor, IntPtr pOwner, ref int lpbOwnerDefaulted);
        [DllImport("advapi32")]
        public static extern int GetSecurityDescriptorSacl(ref SECURITY_DESCRIPTOR pSecurityDescriptor, ref int lpbSaclPresent, ref ACL pSacl, ref int lpbSaclDefaulted);
        [DllImport("advapi32")]
        public static extern int GetServiceDisplayName(IntPtr hSCManager, string lpServiceName, StringBuilder lpDisplayName, ref int cchBuffer);
        [DllImport("advapi32")]
        public static extern int GetServiceKeyName(IntPtr hSCManager, string lpDisplayName, StringBuilder lpServiceName, ref int cchBuffer);
        [DllImport("advapi32")]
        public static extern int GetSidLengthRequired(Byte nSubAuthorityCount);
        [DllImport("advapi32")]
        public static extern int GetSidSubAuthority(IntPtr pSid, int nSubAuthority);
        [DllImport("advapi32")]
        public static extern int GetTokenInformation(int TokenHandle, short TokenInformationClass, IntPtr TokenInformation, int TokenInformationLength, int ReturnLength);
        [DllImport("advapi32")]
        public static extern int GetUserName(StringBuilder lpBuffer, int nSize);
        [DllImport("advapi32")]
        public static extern int ImpersonateNamedPipeClient(IntPtr hNamedPipe);
        [DllImport("advapi32")]
        public static extern int ImpersonateSelf(short ImpersonationLevel);
        [DllImport("advapi32")]
        public static extern int InitializeAcl(ref ACL pAcl, int nAclLength, int dwAclRevision);
        [DllImport("advapi32")]
        public static extern int InitializeSecurityDescriptor(ref SECURITY_DESCRIPTOR pSecurityDescriptor, int dwRevision);
        [DllImport("advapi32")]
        public static extern int InitializeSid(IntPtr Sid, ref SID_IDENTIFIER_AUTHORITY pIdentifierAuthority, Byte nSubAuthorityCount);
        [DllImport("advapi32")]
        public static extern int InitiateSystemShutdown(string lpMachineName, string lpMessage, int dwTimeout, int bForceAppsClosed, int bRebootAfterShutdown);
        [DllImport("advapi32")]
        public static extern int IsValidAcl(ref ACL pAcl);
        [DllImport("advapi32")]
        public static extern int IsValidSecurityDescriptor(ref SECURITY_DESCRIPTOR pSecurityDescriptor);
        [DllImport("advapi32")]
        public static extern int IsValidSid(IntPtr pSid);
        [DllImport("advapi32")]
        public static extern int LockServiceDatabase(IntPtr hSCManager);
        [DllImport("advapi32")]
        public static extern int LookupAccountName(string lpSystemName, string lpAccountName, int Sid, int cbSid, string ReferencedDomainName, int cbReferencedDomainName, int peUse);
        [DllImport("advapi32")]
        public static extern int LookupAccountSid(string lpSystemName, IntPtr Sid, string name, int cbName, string ReferencedDomainName, int cbReferencedDomainName, int peUse);
        [DllImport("advapi32")]
        public static extern int LookupPrivilegeDisplayName(string lpSystemName, string lpName, string lpDisplayName, int cbDisplayName, ref int lpLanguageID);
        [DllImport("advapi32")]
        public static extern int LookupPrivilegeName(string lpSystemName, ref LARGE_INTEGER lpLuid, string lpName, int cbName);
        [DllImport("advapi32")]
        public static extern int LookupPrivilegeValue(string lpSystemName, string lpName, ref LARGE_INTEGER lpLuid);
        [DllImport("advapi32")]
        public static extern int MakeAbsoluteSD(ref SECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, ref SECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, ref int lpdwAbsoluteSecurityDescriptorSize, ref ACL pDacl, ref int lpdwDaclSize, ref ACL pSacl, ref int lpdwSaclSize, IntPtr pOwner, ref int lpdwOwnerSize, IntPtr pPrimaryGroup, ref int lpdwPrimaryGroupSize);
        [DllImport("advapi32")]
        public static extern int MakeSelfRelativeSD(ref SECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, ref SECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, ref int lpdwBufferLength);
        [DllImport("advapi32")]
        public static extern int NotifyBootConfigStatus(int BootAcceptable);
        [DllImport("advapi32")]
        public static extern int ObjectCloseAuditAlarm(string SubsystemName, IntPtr HandleId, int GenerateOnClose);
        [DllImport("advapi32")]
        public static extern int ObjectPrivilegeAuditAlarm(string SubsystemName, IntPtr HandleId, int ClientToken, int DesiredAccess, PRIVILEGE_SET Privileges, int AccessGranted);
        [DllImport("advapi32")]
        public static extern int OpenBackupEventLog(string lpUNCServerName, string lpFileName);
        [DllImport("advapi32")]
        public static extern int OpenEventLog(string lpUNCServerName, string lpSourceName);
        [DllImport("advapi32")]
        public static extern int OpenSCManager(string lpMachineName, string lpDatabaseName, int dwDesiredAccess);
        [DllImport("advapi32")]
        public static extern int OpenService(IntPtr hSCManager, string lpServiceName, int dwDesiredAccess);
        [DllImport("advapi32")]
        public static extern int OpenThreadToken(int ThreadHandle, int DesiredAccess, int OpenAsSelf, int TokenHandle);
        [DllImport("advapi32")]
        public static extern int PrivilegeCheck(int ClientToken, PRIVILEGE_SET RequiredPrivileges, ref int pfResult);
        [DllImport("advapi32")]
        public static extern int PrivilegedServiceAuditAlarm(string SubsystemName, string ServiceName, int ClientToken, PRIVILEGE_SET Privileges, int AccessGranted);
        [DllImport("advapi32")]
        public static extern int QueryServiceConfig(IntPtr hService, ref QUERY_SERVICE_CONFIG lpServiceConfig, int cbBufSize, ref int pcbBytesNeeded);
        [DllImport("advapi32")]
        public static extern int QueryServiceLockStatus(IntPtr hSCManager, ref QUERY_SERVICE_LOCK_STATUS lpLockStatus, int cbBufSize, ref int pcbBytesNeeded);
        [DllImport("advapi32")]
        public static extern int QueryServiceObjectSecurity(IntPtr hService, int dwSecurityInformation, IntPtr lpSecurityDescriptor, int cbBufSize, ref int pcbBytesNeeded);
        [DllImport("advapi32")]
        public static extern int QueryServiceStatus(IntPtr hService, ref SERVICE_STATUS lpServiceStatus);
        [DllImport("advapi32")]
        public static extern int ReadEventLog(IntPtr hEventLog, int dwReadFlags, int dwRecordOffset, ref EVENTLOGRECORD lpBuffer, int nNumberOfBytesToRead, ref int pnBytesRead, ref int pnMinNumberOfBytesNeeded);
        [DllImport("advapi32")]
        public static extern int RegCloseKey(IntPtr hKey);
        [DllImport("advapi32")]
        public static extern int RegConnectRegistry(string lpMachineName, IntPtr hKey, ref int phkResult);
        [DllImport("advapi32")]
        public static extern int RegCreateKey(IntPtr hKey, string lpSubKey, ref int phkResult);
        [DllImport("advapi32")]
        public static extern int RegCreateKeyEx(IntPtr hKey, string lpSubKey, int Reserved, string lpClass, int dwOptions, int samDesired, ref SECURITY_ATTRIBUTES lpSecurityAttributes, ref int phkResult, ref int lpdwDisposition);
        [DllImport("advapi32")]
        public static extern int RegDeleteKey(IntPtr hKey, string lpSubKey);
        [DllImport("advapi32")]
        public static extern int RegDeleteValue(IntPtr hKey, string lpValueName);
        [DllImport("advapi32")]
        public static extern int RegEnumKey(IntPtr hKey, int dwIndex, string lpName, int cbName);
        [DllImport("advapi32")]
        public static extern int RegEnumKeyEx(IntPtr hKey, int dwIndex, string lpName, ref int lpcbName, ref int lpReserved, string lpClass, ref int lpcbClass, ref Com.FILETIME lpftLastWriteTime);
        [DllImport("advapi32")]
        public static extern int RegEnumValue(IntPtr hKey, int dwIndex, string lpValueName, ref int lpcbValueName, ref int lpReserved, ref int lpType, Byte lpData, ref int lpcbData);
        [DllImport("advapi32")]
        public static extern int RegFlushKey(IntPtr hKey);
        [DllImport("advapi32")]
        public static extern int RegGetKeySecurity(IntPtr hKey, int SecurityInformation, ref SECURITY_DESCRIPTOR pSecurityDescriptor, ref int lpcbSecurityDescriptor);
        [DllImport("advapi32")]
        public static extern int RegLoadKey(IntPtr hKey, string lpSubKey, string lpFile);
        [DllImport("advapi32")]
        public static extern int RegNotifyChangeKeyValue(IntPtr hKey, int bWatchSubtree, int dwNotifyFilter, IntPtr hEvent, int fAsynchronus);
        [DllImport("advapi32")]
        public static extern int RegOpenKey(IntPtr hKey, string lpSubKey, ref int phkResult);
        [DllImport("advapi32")]
        public static extern int RegOpenKeyEx(IntPtr hKey, string lpSubKey, int ulOptions, int samDesired, ref int phkResult);
        [DllImport("advapi32")]
        public static extern int RegQueryInfoKey(IntPtr hKey, string lpClass, ref int lpcbClass, ref int lpReserved, ref int lpcSubKeys, ref int lpcbMaxSubKeyLen, ref int lpcbMaxClassLen, ref int lpcValues, ref int lpcbMaxValueNameLen, ref int lpcbMaxValueLen, ref int lpcbSecurityDescriptor, ref Com.FILETIME lpftLastWriteTime);
        [DllImport("advapi32")]
        public static extern int RegQueryValue(IntPtr hKey, string lpSubKey, string lpValue, ref int lpcbValue);
        [DllImport("advapi32")]
        public static extern int RegQueryValueEx(IntPtr hKey, string lpValueName, ref int lpReserved, ref int lpType, IntPtr lpData, ref int lpcbData);
        [DllImport("advapi32")]
        public static extern int RegReplaceKey(IntPtr hKey, string lpSubKey, string lpNewFile, string lpOldFile);
        [DllImport("advapi32")]
        public static extern int RegRestoreKey(IntPtr hKey, string lpFile, int dwFlags);
        [DllImport("advapi32")]
        public static extern int RegSaveKey(IntPtr hKey, string lpFile, ref SECURITY_ATTRIBUTES lpSecurityAttributes);
        [DllImport("advapi32")]
        public static extern int RegSetKeySecurity(IntPtr hKey, int SecurityInformation, ref SECURITY_DESCRIPTOR pSecurityDescriptor);
        [DllImport("advapi32")]
        public static extern int RegSetValue(IntPtr hKey, string lpSubKey, int dwType, string lpData, int cbData);
        [DllImport("advapi32")]
        public static extern int RegSetValueEx(IntPtr hKey, string lpValueName, int Reserved, int dwType, IntPtr lpData, int cbData);
        [DllImport("advapi32")]
        public static extern int RegUnLoadKey(IntPtr hKey, string lpSubKey);
        [DllImport("advapi32")]
        public static extern int RegisterEventSource(string lpUNCServerName, string lpSourceName);
        [DllImport("advapi32")]
        public static extern int RegisterServiceCtrlHandler(string lpServiceName, ref int lpHandlerProc);
        [DllImport("advapi32")]
        public static extern int ReportEvent(IntPtr hEventLog, int wType, int wCategory, int dwEventID, IntPtr lpUserSid, int wNumStrings, int dwDataSize, ref int lpStrings, IntPtr lpRawData);
        [DllImport("advapi32")]
        public static extern int RevertToSelf();
        [DllImport("advapi32")]
        public static extern int SetAclInformation(ref ACL pAcl, IntPtr pAclInformation, int nAclInformationLength, short dwAclInformationClass);
        [DllImport("advapi32")]
        public static extern int SetFileSecurity(string lpFileName, int SecurityInformation, ref SECURITY_DESCRIPTOR pSecurityDescriptor);
        [DllImport("advapi32")]
        public static extern int SetKernelObjectSecurity(IntPtr handle, int SecurityInformation, SECURITY_DESCRIPTOR SecurityDescriptor);
        [DllImport("advapi32")]
        public static extern int SetPrivateObjectSecurity(int SecurityInformation, SECURITY_DESCRIPTOR ModificationDescriptor, SECURITY_DESCRIPTOR ObjectsSecurityDescriptor, GENERIC_MAPPING GenericMapping, int Token);
        [DllImport("advapi32")]
        public static extern int SetSecurityDescriptorDacl(ref SECURITY_DESCRIPTOR pSecurityDescriptor, int bDaclPresent, ref ACL pDacl, int bDaclDefaulted);
        [DllImport("advapi32")]
        public static extern int SetSecurityDescriptorGroup(ref SECURITY_DESCRIPTOR pSecurityDescriptor, IntPtr pGroup, int bGroupDefaulted);
        [DllImport("advapi32")]
        public static extern int SetSecurityDescriptorOwner(ref SECURITY_DESCRIPTOR pSecurityDescriptor, IntPtr pOwner, int bOwnerDefaulted);
        [DllImport("advapi32")]
        public static extern int SetSecurityDescriptorSacl(ref SECURITY_DESCRIPTOR pSecurityDescriptor, int bSaclPresent, ref ACL pSacl, int bSaclDefaulted);
        [DllImport("advapi32")]
        public static extern int SetServiceObjectSecurity(IntPtr hService, int dwSecurityInformation, IntPtr lpSecurityDescriptor);
        [DllImport("advapi32")]
        public static extern int SetServiceStatus(IntPtr hServiceStatus, ref SERVICE_STATUS lpServiceStatus);
        [DllImport("advapi32")]
        public static extern int SetTokenInformation(int TokenHandle, short TokenInformationClass, IntPtr TokenInformation, int TokenInformationLength);
        [DllImport("advapi32")]
        public static extern int StartService(IntPtr hService, int dwNumServiceArgs, ref int lpServiceArgVectors);
        [DllImport("advapi32")]
        public static extern int StartServiceCtrlDispatcher(ref SERVICE_TABLE_ENTRY lpServiceStartTable);
        [DllImport("advapi32")]
        public static extern int UnlockServiceDatabase(IntPtr ScLock);
        [DllImport("advapi32")]
        public static extern void FreeSid(IntPtr pSid);
        [DllImport("advapi32")]
        public static extern void MapGenericMask(int AccessMask, GENERIC_MAPPING GenericMapping);
        [DllImport("advapi32")]
        public static extern int GetUserNameW(Byte lpBuffer, int nSize);
        [DllImport("advapi32")]
        public static extern int OpenProcessToken(int ProcessHandle, int DesiredAccess, int TokenHandle);
        #endregion

        #region Version
        [DllImport("version")]
        public static extern int GetFileVersionInfo(string lptstrFilename, int dwHandle, int dwLen, IntPtr lpData);
        [DllImport("version")]
        public static extern int GetFileVersionInfoSize(string lptstrFilename, ref int lpdwHandle);
        [DllImport("version")]
        public static extern int VerFindFile(int uFlags, string szFileName, string szWinDir, string szAppDir, string szCurDir, ref int lpuCurDirLen, string szDestDir, ref int lpuDestDirLen);
        [DllImport("version")]
        public static extern int VerInstallFile(int uFlags, string szSrcFileName, string szDestFileName, string szSrcDir, string szDestDir, string szCurDir, string szTmpFile, ref int lpuTmpFileLen);
        [DllImport("version")]
        public static extern int VerQueryValue(IntPtr pBlock, string lpSubBlock, ref int lplpBuffer, ref int puLen);
        #endregion

        #region HHCtrl
        //HTML Help
        [DllImport("hhctrl.ocx", CharSet = CharSet.Ansi)]
        public static extern IntPtr HtmlHelp(
            IntPtr hwndCaller,
            string pszFile,
            int uCommand,
            int dwData);
        #endregion

        #region Shell32
        [DllImport("shell32.dll")]
        public static extern IntPtr SHGetShellStyleHInstance();

        [DllImport("shell32.dll")]
        public static extern int Shell_NotifyIcon(int dwMessage, ref NOTIFYICONDATA lpdata);

        [DllImport("Shell32.dll")]
        public extern static int SHGetMalloc([MarshalAs(UnmanagedType.IUnknown)]out object shmalloc);

        [DllImport("Shell32.dll", CharSet = CharSet.Auto)]
        public extern static System.IntPtr SHBrowseForFolder(ref BROWSEINFO bi);

        [DllImport("Shell32.dll", CharSet = CharSet.Auto)]
        public extern static int SHGetPathFromIDList(IntPtr pidl, [MarshalAs(UnmanagedType.LPTStr)] System.Text.StringBuilder pszPath);
        [DllImport("shell32")]
        public static extern int CommandLineToArgv(string lpCmdLine, short pNumArgs);
        [DllImport("shell32")]
        public static extern int DoEnvironmentSubst(string szString, int cbString);
        [DllImport("shell32")]
        public static extern int DragQueryFile(IntPtr hDROP, int UINT, string lpStr, int ch);
        [DllImport("shell32")]
        public static extern int DragQueryPoint(IntPtr hDROP, ref POINT lpPoint);
        [DllImport("shell32")]
        public static extern int DuplicateIcon(IntPtr hInst, IntPtr hIcon);
        [DllImport("shell32")]
        public static extern int ExtractAssociatedIcon(IntPtr hInst, string lpIconPath, ref int lpiIcon);
        [DllImport("shell32")]
        public static extern int ExtractIcon(IntPtr hInst, string lpszExeFileName, int nIconIndex);
        [DllImport("shell32")]
        public static extern int ExtractIconEx(string lpszFile, int nIconIndex, ref int phiconLarge, ref int phiconSmall, int nIcons);
        [DllImport("shell32")]
        public static extern int FindExecutable(string lpFile, string lpDirectory, string lpResult);
        [DllImport("shell32")]
        public static extern int SHAppBarMessage(int dwMessage, ref APPBARDATA pData);
        [DllImport("shell32")]
        public static extern int SHFileOperation(ref SHFILEOPSTRUCT lpFileOp);
        [DllImport("shell32")]
        public static extern int SHGetFileInfo(string pszPath, int dwFileAttributes, ref SHFILEINFO psfi, int cbFileInfo, int uFlags);
        [DllImport("shell32")]
        public static extern int SHGetNewLinkInfo(string pszLinkto, string pszDir, string pszName, ref int pfMustCopy, int uFlags);
        [DllImport("shell32")]
        public static extern int ShellAbout(IntPtr hwnd, string szApp, string szOtherStuff, IntPtr hIcon);
        [DllImport("shell32")]
        public static extern int ShellExecute(IntPtr hwnd, string lpOperation, string lpFile, string lpParameters, string lpDirectory, int nShowCmd);
        [DllImport("shell32")]
        public static extern void DragAcceptFiles(IntPtr hwnd, int fAccept);
        [DllImport("shell32")]
        public static extern void DragFinish(IntPtr hDrop);
        [DllImport("shell32")]
        public static extern void SHFreeNameMappings(IntPtr hNameMappings);
        [DllImport("shell32")]
        public static extern void WinExecError(IntPtr hwnd, int error, string lpstrFileName, string lpstrTitle);
        [DllImport("shell32")]
        public static extern int SHGetPathFromIDList(int pidList, StringBuilder lpBuffer);
        #endregion

        #region Msimg32
        [DllImport("msimg32.dll")]
        public static extern int GradientFillRect(IntPtr hdc,
            ref TRIVERTEX[] pVertex,
            int dwNumVertex,
            ref GRADIENT_RECT pMesh,
            int dwNumMesh,
            int dwMode);
        #endregion

        #region Mpr
        [DllImport("mpr.dll")]
        public static extern int WNetGetLastError(ref int dwError,
            string errorBuf, int nErrorBufSize,
            string nameBuf, int nNameBufSize);
        [DllImport("mpr.dll")]
        public static extern int WNetOpenEnum(int dwScope,
            int dwType, int dwUsage,
            [MarshalAs(UnmanagedType.AsAny)][In]
			Object resource, out IntPtr handle);
        [DllImport("mpr.dll")]
        public static extern int WNetEnumResource(IntPtr handle,
            ref int count, IntPtr lpBuffer, ref int lpBufferSize);
        [DllImport("mpr.dll")]
        public static extern int WNetCloseEnum(IntPtr handle);
        [DllImport("mpr")]
        public static extern int WNetAddConnection(string lpszNetPath, string lpszPassword, string lpszLocalName);
        [DllImport("mpr")]
        public static extern int WNetAddConnection2(ref NETRESOURCE lpNetResource, string lpPassword, string lpUserName, int dwFlags);
        [DllImport("mpr")]
        public static extern int WNetCancelConnection(string lpszName, int bForce);
        [DllImport("mpr")]
        public static extern int WNetCancelConnection2(string lpName, int dwFlags, int fForce);
        [DllImport("mpr")]
        public static extern int WNetConnectionDialog(IntPtr hwnd, int dwType);
        [DllImport("mpr")]
        public static extern int WNetDisconnectDialog(IntPtr hwnd, int dwType);
        [DllImport("mpr")]
        public static extern int WNetEnumResource(IntPtr hEnum, ref int lpcCount, ref NETRESOURCE lpBuffer, ref int lpBufferSize);
        [DllImport("mpr")]
        public static extern int WNetGetConnection(string lpszLocalName, string lpszRemoteName, int cbRemoteName);
        [DllImport("mpr")]
        public static extern int WNetGetLastError(int lpError, StringBuilder lpErrorBuf, int nErrorBufSize, string lpNameBuf, int nNameBufSize);
        [DllImport("mpr")]
        public static extern int WNetGetUser(string lpName, StringBuilder lpUserName, ref int lpnLength);
        [DllImport("mpr")]
        public static extern int WNetGetUniversalName(string lpLocalPath, int dwInfoLevel, StringBuilder lpBuffer, ref int lpBufferSize);
        #endregion

        #region ODBC
        [DllImport("odbc32.dll")]
        public static extern short SQLDrivers(IntPtr henv, short direction, StringBuilder driverDesc,
            short bufLen, ref short bufLenAvailable, [In, Out] char[] attribs, short attrLen,
            ref short attrLenAvailable);
        [DllImport("odbc32.dll")]
        public static extern short SQLDataSources(IntPtr henv, short direction, StringBuilder dsnDesc,
            short bufLen, ref short bufLenAvailable, StringBuilder drvDesc, short drvLen,
            ref short drvLenAvailable);
        [DllImport("odbc32.dll")]
        public static extern short SQLAllocHandle(short HandleType, IntPtr InputHandle, ref IntPtr OutputHandlePtr);
        [DllImport("odbc32.dll")]
        public static extern short SQLSetEnvAttr(IntPtr EnvironmentHandle, int Attribute,
            IntPtr ValuePtr, int StringLength);
        [DllImport("odbc32.dll")]
        public static extern short SQLFreeHandle(short HandleType, IntPtr Handle);
        [DllImport("odbccp32.dll")]
        public static extern int SQLGetTranslator(IntPtr hwndParent, StringBuilder lpszName,
            short cbNameMax, ref short pcbNameOut, StringBuilder lpszPath, short cbPathMax,
            ref short pcbPathOut, ref int pvOption);
        #endregion

        #region Shlwapi
        [DllImport("Shlwapi.dll")]
        public static extern void SHAutoComplete(IntPtr hwnd, IntPtr flags);
        #endregion

        #region Winmm
        [DllImport("winmm.dll")]
        public static extern int timeGetTime();

        [DllImport("winmm.dll")]
        public static extern int timeBeginPeriod(int uPeriod);

        [DllImport("winmm.dll")]
        public static extern int timeEndPeriod(int uPeriod);

        [DllImport("winmm")]
        public static extern int mciGetYieldProc(int mciId, ref int pdwYieldData);
        [DllImport("winmm")]
        public static extern int mciSetYieldProc(int mciId, int fpYieldProc, int dwYieldData);
        [DllImport("winmm")]
        public static extern int mmioInstallIOProcA(int fccIOProc, ref int pIOProc, int dwFlags);
        [DllImport("winmm")]
        public static extern short midiOutGetNumDevs();
        [DllImport("winmm")]
        public static extern int CloseDriver(IntPtr hDriver, int lParam1, int lParam2);
        [DllImport("winmm")]
        public static extern int DefDriverProc(int dwDriverIdentifier, IntPtr hdrvr, int uMsg, int lParam1, int lParam2);
        [DllImport("winmm")]
        public static extern int DrvGetModuleHandle(IntPtr hDriver);
        [DllImport("winmm")]
        public static extern int GetDriverModuleHandle(IntPtr hDriver);
        [DllImport("winmm")]
        public static extern int OpenDriver(string szDriverName, string szSectionName, int lParam2);
        [DllImport("winmm")]
        public static extern int PlaySound(string lpszName, IntPtr hModule, int dwFlags);
        [DllImport("winmm")]
        public static extern int SendDriverMessage(IntPtr hDriver, int message, int lParam1, int lParam2);
        [DllImport("winmm")]
        public static extern int auxGetDevCaps(int uDeviceID, ref AUXCAPS lpCaps, int uSize);
        [DllImport("winmm")]
        public static extern int auxGetNumDevs();
        [DllImport("winmm")]
        public static extern int auxGetVolume(int uDeviceID, ref int lpdwVolume);
        [DllImport("winmm")]
        public static extern int auxOutMessage(int uDeviceID, int msg, int dw1, int dw2);
        [DllImport("winmm")]
        public static extern int auxSetVolume(int uDeviceID, int dwVolume);
        [DllImport("winmm")]
        public static extern int joyGetDevCaps(int id, ref JOYCAPS lpCaps, int uSize);
        [DllImport("winmm")]
        public static extern int joyGetNumDevs();
        [DllImport("winmm")]
        public static extern int joyGetPos(int uJoyID, ref JOYINFO pji);
        [DllImport("winmm")]
        public static extern int joyGetPosEx(int uJoyID, ref JOYINFOEX pji);
        [DllImport("winmm")]
        public static extern int joyGetThreshold(int id, ref int lpuThreshold);
        [DllImport("winmm")]
        public static extern int joyReleaseCapture(int id);
        [DllImport("winmm")]
        public static extern int joySetCapture(IntPtr hwnd, int uID, int uPeriod, int bChanged);
        [DllImport("winmm")]
        public static extern int joySetThreshold(int id, int uThreshold);
        [DllImport("winmm")]
        public static extern int mciExecute(string lpstrCommand);
        [DllImport("winmm")]
        public static extern int mciGetCreatorTask(int wDeviceID);
        [DllImport("winmm")]
        public static extern int mciGetDeviceID(string lpstrName);
        [DllImport("winmm")]
        public static extern int mciGetDeviceIDFromElementID(int dwElementID, string lpstrType);
        [DllImport("winmm")]
        public static extern int mciGetErrorString(int dwError, StringBuilder lpstrBuffer, int uLength);
        [DllImport("winmm")]
        public static extern int mciSendCommand(int wDeviceID, int uMessage, int dwParam1, IntPtr dwParam2);
        [DllImport("winmm")]
        public static extern int mciSendString(string lpstrCommand, StringBuilder lpstrReturnString, int uReturnLength, IntPtr hwndCallback);
        [DllImport("winmm")]
        public static extern int midiConnect(IntPtr hmi, IntPtr hmo, IntPtr pReserved);
        [DllImport("winmm")]
        public static extern int midiDisconnect(IntPtr hmi, IntPtr hmo, IntPtr pReserved);
        [DllImport("winmm")]
        public static extern int midiInAddBuffer(IntPtr hMidiIn, ref MIDIHDR lpMidiInHdr, int uSize);
        [DllImport("winmm")]
        public static extern int midiInClose(IntPtr hMidiIn);
        [DllImport("winmm")]
        public static extern int midiInGetDevCaps(int uDeviceID, ref MIDIINCAPS lpCaps, int uSize);
        [DllImport("winmm")]
        public static extern int midiInGetErrorText(int err, string lpText, int uSize);
        [DllImport("winmm")]
        public static extern int midiInGetID(IntPtr hMidiIn, ref int lpuDeviceID);
        [DllImport("winmm")]
        public static extern int midiInGetNumDevs();
        [DllImport("winmm")]
        public static extern int midiInMessage(IntPtr hMidiIn, int msg, int dw1, int dw2);
        [DllImport("winmm")]
        public static extern int midiInOpen(int lphMidiIn, int uDeviceID, int dwCallback, int dwInstance, int dwFlags);
        [DllImport("winmm")]
        public static extern int midiInPrepareHeader(IntPtr hMidiIn, ref MIDIHDR lpMidiInHdr, int uSize);
        [DllImport("winmm")]
        public static extern int midiInReset(IntPtr hMidiIn);
        [DllImport("winmm")]
        public static extern int midiInStart(IntPtr hMidiIn);
        [DllImport("winmm")]
        public static extern int midiInStop(IntPtr hMidiIn);
        [DllImport("winmm")]
        public static extern int midiInUnprepareHeader(IntPtr hMidiIn, ref MIDIHDR lpMidiInHdr, int uSize);
        [DllImport("winmm")]
        public static extern int midiOutCacheDrumPatches(IntPtr hMidiOut, int uPatch, ref int lpKeyArray, int uFlags);
        [DllImport("winmm")]
        public static extern int midiOutCachePatches(IntPtr hMidiOut, int uBank, ref int lpPatchArray, int uFlags);
        [DllImport("winmm")]
        public static extern int midiOutClose(IntPtr hMidiOut);
        [DllImport("winmm")]
        public static extern int midiOutGetDevCaps(int uDeviceID, ref MIDIOUTCAPS lpCaps, int uSize);
        [DllImport("winmm")]
        public static extern int midiOutGetErrorText(int err, StringBuilder lpText, int uSize);
        [DllImport("winmm")]
        public static extern int midiOutGetID(IntPtr hMidiOut, ref int lpuDeviceID);
        [DllImport("winmm")]
        public static extern int midiOutGetVolume(int uDeviceID, ref int lpdwVolume);
        [DllImport("winmm")]
        public static extern int midiOutLongMsg(IntPtr hMidiOut, ref MIDIHDR lpMidiOutHdr, int uSize);
        [DllImport("winmm")]
        public static extern int midiOutMessage(IntPtr hMidiOut, int msg, int dw1, int dw2);
        [DllImport("winmm")]
        public static extern int midiOutOpen(int lphMidiOut, int uDeviceID, int dwCallback, int dwInstance, int dwFlags);
        [DllImport("winmm")]
        public static extern int midiOutPrepareHeader(IntPtr hMidiOut, ref MIDIHDR lpMidiOutHdr, int uSize);
        [DllImport("winmm")]
        public static extern int midiOutReset(IntPtr hMidiOut);
        [DllImport("winmm")]
        public static extern int midiOutSetVolume(int uDeviceID, int dwVolume);
        [DllImport("winmm")]
        public static extern int midiOutShortMsg(IntPtr hMidiOut, int dwMsg);
        [DllImport("winmm")]
        public static extern int midiOutUnprepareHeader(IntPtr hMidiOut, ref MIDIHDR lpMidiOutHdr, int uSize);
        [DllImport("winmm")]
        public static extern int midiStreamClose(IntPtr hms);
        [DllImport("winmm")]
        public static extern int midiStreamOpen(int phms, int puDeviceID, int cMidi, int dwCallback, int dwInstance, int fdwOpen);
        [DllImport("winmm")]
        public static extern int midiStreamOut(IntPtr hms, ref MIDIHDR pmh, int cbmh);
        [DllImport("winmm")]
        public static extern int midiStreamPause(IntPtr hms);
        [DllImport("winmm")]
        public static extern int midiStreamPosition(IntPtr hms, ref MMTIME lpmmt, int cbmmt);
        [DllImport("winmm")]
        public static extern int midiStreamProperty(IntPtr hms, Byte lppropdata, int dwProperty);
        [DllImport("winmm")]
        public static extern int midiStreamRestart(IntPtr hms);
        [DllImport("winmm")]
        public static extern int midiStreamStop(IntPtr hms);
        [DllImport("winmm")]
        public static extern int mixerClose(IntPtr hmx);
        [DllImport("winmm")]
        public static extern int mixerGetControlDetails(IntPtr hmxobj, ref MIXERCONTROLDETAILS pmxcd, int fdwDetails);
        [DllImport("winmm")]
        public static extern int mixerGetDevCaps(int uMxId, ref MIXERCAPS pmxcaps, int cbmxcaps);
        [DllImport("winmm")]
        public static extern int mixerGetID(IntPtr hmxobj, ref int pumxID, int fdwId);
        [DllImport("winmm")]
        public static extern int mixerGetLineControls(IntPtr hmxobj, ref MIXERLINECONTROLS pmxlc, int fdwControls);
        [DllImport("winmm")]
        public static extern int mixerGetLineInfo(IntPtr hmxobj, ref MIXERLINE pmxl, int fdwInfo);
        [DllImport("winmm")]
        public static extern int mixerGetNumDevs();
        [DllImport("winmm")]
        public static extern int mixerMessage(IntPtr hmx, int uMsg, int dwParam1, int dwParam2);
        [DllImport("winmm")]
        public static extern int mixerOpen(int phmx, int uMxId, int dwCallback, int dwInstance, int fdwOpen);
        [DllImport("winmm")]
        public static extern int mixerSetControlDetails(IntPtr hmxobj, ref MIXERCONTROLDETAILS pmxcd, int fdwDetails);
        [DllImport("winmm")]
        public static extern int mmioAdvance(IntPtr hmmio, ref MMIOINFO lpmmioinfo, int uFlags);
        [DllImport("winmm")]
        public static extern int mmioAscend(IntPtr hmmio, ref MMCKINFO lpck, int uFlags);
        [DllImport("winmm")]
        public static extern int mmioClose(IntPtr hmmio, int uFlags);
        [DllImport("winmm")]
        public static extern int mmioCreateChunk(IntPtr hmmio, ref MMCKINFO lpck, int uFlags);
        [DllImport("winmm")]
        public static extern int mmioDescend(IntPtr hmmio, ref MMCKINFO lpck, ref MMCKINFO lpckParent, int uFlags);
        [DllImport("winmm")]
        public static extern int mmioFlush(IntPtr hmmio, int uFlags);
        [DllImport("winmm")]
        public static extern int mmioGetInfo(IntPtr hmmio, ref MMIOINFO lpmmioinfo, int uFlags);
        [DllImport("winmm")]
        public static extern int mmioOpen(string szFileName, ref MMIOINFO lpmmioinfo, int dwOpenFlags);
        [DllImport("winmm")]
        public static extern int mmioRead(IntPtr hmmio, string pch, int cch);
        [DllImport("winmm")]
        public static extern int mmioRename(string szFileName, string SzNewFileName, ref MMIOINFO lpmmioinfo, int dwRenameFlags);
        [DllImport("winmm")]
        public static extern int mmioSeek(IntPtr hmmio, int lOffset, int iOrigin);
        [DllImport("winmm")]
        public static extern int mmioSendMessage(IntPtr hmmio, int uMsg, int lParam1, int lParam2);
        [DllImport("winmm")]
        public static extern int mmioSetBuffer(IntPtr hmmio, StringBuilder pchBuffer, int cchBuffer, int uFlags);
        [DllImport("winmm")]
        public static extern int mmioSetInfo(IntPtr hmmio, ref MMIOINFO lpmmioinfo, int uFlags);
        [DllImport("winmm")]
        public static extern int mmioStringToFOURCC(string sz, int uFlags);
        [DllImport("winmm")]
        public static extern int mmioWrite(IntPtr hmmio, string pch, int cch);
        [DllImport("winmm")]
        public static extern int mmsystemGetVersion();
        [DllImport("winmm")]
        public static extern int sndPlaySound(string lpszSoundName, int uFlags);
        [DllImport("winmm")]
        public static extern int timeGetDevCaps(ref TIMECAPS lpTimeCaps, int uSize);
        [DllImport("winmm")]
        public static extern int timeGetSystemTime(ref MMTIME lpTime, int uSize);
        [DllImport("winmm")]
        public static extern int timeKillEvent(int uID);
        [DllImport("winmm")]
        public static extern int timeSetEvent(int uDelay, int uResolution, ref int lpFunction, int dwUser, int uFlags);
        [DllImport("winmm")]
        public static extern int waveInAddBuffer(IntPtr hWaveIn, ref WAVEHDR lpWaveInHdr, int uSize);
        [DllImport("winmm")]
        public static extern int waveInClose(IntPtr hWaveIn);
        [DllImport("winmm")]
        public static extern int waveInGetDevCaps(int uDeviceID, ref WAVEINCAPS lpCaps, int uSize);
        [DllImport("winmm")]
        public static extern int waveInGetErrorText(int err, string lpText, int uSize);
        [DllImport("winmm")]
        public static extern int waveInGetID(IntPtr hWaveIn, ref int lpuDeviceID);
        [DllImport("winmm")]
        public static extern int waveInGetNumDevs();
        [DllImport("winmm")]
        public static extern int waveInGetPosition(IntPtr hWaveIn, ref MMTIME lpInfo, int uSize);
        [DllImport("winmm")]
        public static extern int waveInMessage(IntPtr hWaveIn, int msg, int dw1, int dw2);
        [DllImport("winmm")]
        public static extern int waveInOpen(int lphWaveIn, int uDeviceID, ref WAVEFORMAT lpFormat, int dwCallback, int dwInstance, int dwFlags);
        [DllImport("winmm")]
        public static extern int waveInPrepareHeader(IntPtr hWaveIn, ref WAVEHDR lpWaveInHdr, int uSize);
        [DllImport("winmm")]
        public static extern int waveInReset(IntPtr hWaveIn);
        [DllImport("winmm")]
        public static extern int waveInStart(IntPtr hWaveIn);
        [DllImport("winmm")]
        public static extern int waveInStop(IntPtr hWaveIn);
        [DllImport("winmm")]
        public static extern int waveInUnprepareHeader(IntPtr hWaveIn, ref WAVEHDR lpWaveInHdr, int uSize);
        [DllImport("winmm")]
        public static extern int waveOutBreakLoop(IntPtr hWaveOut);
        [DllImport("winmm")]
        public static extern int waveOutClose(IntPtr hWaveOut);
        [DllImport("winmm")]
        public static extern int waveOutGetDevCaps(int uDeviceID, ref WAVEOUTCAPS lpCaps, int uSize);
        [DllImport("winmm")]
        public static extern int waveOutGetErrorText(int err, string lpText, int uSize);
        [DllImport("winmm")]
        public static extern int waveOutGetID(IntPtr hWaveOut, ref int lpuDeviceID);
        [DllImport("winmm")]
        public static extern int waveOutGetNumDevs();
        [DllImport("winmm")]
        public static extern int waveOutGetPitch(IntPtr hWaveOut, ref int lpdwPitch);
        [DllImport("winmm")]
        public static extern int waveOutGetPlaybackRate(IntPtr hWaveOut, ref int lpdwRate);
        [DllImport("winmm")]
        public static extern int waveOutGetPosition(IntPtr hWaveOut, ref MMTIME lpInfo, int uSize);
        [DllImport("winmm")]
        public static extern int waveOutGetVolume(int uDeviceID, ref int lpdwVolume);
        [DllImport("winmm")]
        public static extern int waveOutMessage(IntPtr hWaveOut, int msg, int dw1, int dw2);
        [DllImport("winmm")]
        public static extern int waveOutOpen(int lphWaveOut, int uDeviceID, ref WAVEFORMAT lpFormat, int dwCallback, int dwInstance, int dwFlags);
        [DllImport("winmm")]
        public static extern int waveOutPause(IntPtr hWaveOut);
        [DllImport("winmm")]
        public static extern int waveOutPrepareHeader(IntPtr hWaveOut, ref WAVEHDR lpWaveOutHdr, int uSize);
        [DllImport("winmm")]
        public static extern int waveOutReset(IntPtr hWaveOut);
        [DllImport("winmm")]
        public static extern int waveOutRestart(IntPtr hWaveOut);
        [DllImport("winmm")]
        public static extern int waveOutSetPitch(IntPtr hWaveOut, int dwPitch);
        [DllImport("winmm")]
        public static extern int waveOutSetPlaybackRate(IntPtr hWaveOut, int dwRate);
        [DllImport("winmm")]
        public static extern int waveOutSetVolume(int uDeviceID, int dwVolume);
        [DllImport("winmm")]
        public static extern int waveOutUnprepareHeader(IntPtr hWaveOut, ref WAVEHDR lpWaveOutHdr, int uSize);
        [DllImport("winmm")]
        public static extern int waveOutWrite(IntPtr hWaveOut, ref WAVEHDR lpWaveOutHdr, int uSize);
        #endregion

        #region Lz32
        [DllImport("lz32")]
        public static extern int CopyLZFile(int n1, int n2);
        [DllImport("lz32")]
        public static extern int LZStart();
        [DllImport("lz32")]
        public static extern void LZDone();
        [DllImport("lz32")]
        public static extern int GetExpandedName(string lpszSource, StringBuilder lpszBuffer);
        [DllImport("lz32")]
        public static extern int LZCopy(IntPtr hfSource, IntPtr hfDest);
        [DllImport("lz32")]
        public static extern int LZInit(IntPtr hfSrc);
        [DllImport("lz32")]
        public static extern int LZOpenFile(string lpszFile, ref OFSTRUCT lpOf, int style);
        [DllImport("lz32")]
        public static extern int LZRead(IntPtr hfFile, string lpvBuf, int cbread);
        [DllImport("lz32")]
        public static extern int LZSeek(IntPtr hfFile, int lOffset, int nOrigin);
        [DllImport("lz32")]
        public static extern void LZClose(IntPtr hfFile);
        #endregion

        #region NetApi32
        [DllImport("Netapi32")]
        public static extern int NetApiBufferFree(int lpBuffer);
        [DllImport("Netapi32")]
        public static extern int NetRemoteTOD(IntPtr yServer, int pBuffer);
        [DllImport("Netapi32")]
        public static extern int NetUserChangePassword(IntPtr Domain, IntPtr User, Byte OldPass, Byte NewPass);
        [DllImport("Netapi32")]
        public static extern int NetUserGetGroups(IntPtr lpServer, Byte UserName, int Level, ref int lpBuffer, int PrefMaxLen, ref int lpEntriesRead, ref int lpTotalEntries);
        [DllImport("Netapi32")]
        public static extern int NetUserGetInfo(IntPtr lpServer, Byte UserName, int Level, ref int lpBuffer);
        [DllImport("Netapi32")]
        public static extern int NetUserGetLocalGroups(IntPtr lpServer, Byte UserName, int Level, int Flags, ref int lpBuffer, int MaxLen, ref int lpEntriesRead, ref int lpTotalEntries);
        [DllImport("Netapi32")]
        public static extern int NetWkstaGetInfo(IntPtr lpServer, int Level, IntPtr lpBuffer);
        [DllImport("Netapi32")]
        public static extern int NetWkstaUserGetInfo(IntPtr reserved, int Level, IntPtr lpBuffer);
        [DllImport("netapi32")]
        public static extern int NetUserAdd(IntPtr lpServer, int Level, ref USER_INFO_3 lpUser, ref int lpError);
        [DllImport("netapi32")]
        public static extern int NetLocalGroupDelMembers(int psServer, int psLocalGroup, int lLevel, ref LOCALGROUP_MEMBERS_INFO_0 uMember, int lMemberCount);
        [DllImport("netapi32")]
        public static extern int NetLocalGroupGetMembers(int psServer, int psLocalGroup, int lLevel, int pBuffer, int lMaxLength, int plEntriesRead, int plTotalEntries, int phResume);
        #endregion

        #region Ole32
        [DllImport("ole32")]
        public static extern int OleInitialize(IntPtr vbNullString);
        [DllImport("ole32")]
        public static extern void CoTaskMemFree(IntPtr hMem);
        [DllImport("ole32")]
        public static extern void OleUninitialize();
        #endregion

        #region RPCRT4
        [DllImport("rpcrt4.dll")]
        public static extern int UuidCreate(ref GUID uuid);
        #endregion

        #region Crypt32
        [DllImport("Crypt32.dll")]
        public static extern int CertFreeCertificateContext(IntPtr pCertContext);
        #endregion

        #region Other
        internal const int COMBINE_RGN_OR = 2;
        public const int MONITOR_DEFAULTTONEAREST = 2;
        internal const SWP SWPFlags = (SWP.NOREPOSITION | SWP.DRAWFRAME | SWP.NOACTIVATE | SWP.NOZORDER | SWP.NOMOVE | SWP.NOSIZE);

        [return: MarshalAs(UnmanagedType.Bool)]
        [DllImport("user32.dll")]
        public static extern bool AdjustWindowRectEx(ref RECT lpRect, WS dwStyle, [MarshalAs(UnmanagedType.Bool)] bool bMenu, WS_EX dwExStyle);
        [DllImport("user32.dll", EntryPoint = "DefWindowProcW", CharSet = CharSet.Unicode)]
        public static extern IntPtr DefWindowProc(IntPtr hWnd, WM Msg, IntPtr wParam, IntPtr lParam);
        [return: MarshalAs(UnmanagedType.Bool)]
        [DllImport("dwmapi.dll")]
        public static extern bool DwmDefWindowProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, out IntPtr plResult);
        [DllImport("dwmapi.dll", PreserveSig = false)]
        public static extern void DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS pMarInset);
        [DllImport("dwmapi.dll", PreserveSig = false)]
        public static extern void DwmIsCompositionEnabled([MarshalAs(UnmanagedType.Bool)] out bool pfEnabled);
        [DllImport("user32.dll")]
        public static extern int EnableMenuItem(IntPtr hMenu, SC uIDEnableItem, MF uEnable);
        /*internal static bool ExtendNativeGlass(RibbonWindow window, Thickness margins)
        {
            window.VerifyAccess();
            if (Environment.OSVersion.Version.Major < 6)
            {
                return false;
            }
            IntPtr handle = new WindowInteropHelper(window).Handle;
            if (IntPtr.Zero == handle)
            {
                throw new InvalidOperationException(NETXPF.StringLookup.Get(NETXPF.StringLookupByID.RibbonWindow_ExtendUnshownGlass));
            }
            HwndSource.FromHwnd(handle).CompositionTarget.BackgroundColor = Colors.Transparent;
            MARGINS pMarInset = new MARGINS(margins);
            DwmExtendFrameIntoClientArea(handle, ref pMarInset);
            return true;
        }*/

        public static int GET_X_LPARAM(IntPtr lParam)
        {
            return LOWORD(lParam.ToInt32());
        }

        public static int GET_Y_LPARAM(IntPtr lParam)
        {
            return HIWORD(lParam.ToInt32());
        }

        [return: MarshalAs(UnmanagedType.Bool)]
        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        public static extern bool GetMonitorInfo(HandleRef hmonitor, [In, Out] MONITORINFOEX info);
        [DllImport("user32.dll")]
        public static extern IntPtr GetSystemMenu(IntPtr hWnd, [MarshalAs(UnmanagedType.Bool)] bool bRevert);
        public static IntPtr GetWindowLongPtr(IntPtr hwnd, GWL nIndex)
        {
            if (8 == IntPtr.Size)
            {
                return GetWindowLongPtr64(hwnd, nIndex);
            }
            return GetWindowLongPtr32(hwnd, nIndex);
        }

        [DllImport("user32.dll", EntryPoint = "GetWindowLong")]
        private static extern IntPtr GetWindowLongPtr32(IntPtr hWnd, GWL nIndex);
        [DllImport("user32.dll", EntryPoint = "GetWindowLongPtr")]
        private static extern IntPtr GetWindowLongPtr64(IntPtr hWnd, GWL nIndex);

        internal static bool ModifyHwndStyle(IntPtr hwnd, WS removeStyle, WS addStyle)
        {
            WS ws = (WS)GetWindowLongPtr(hwnd, GWL.STYLE).ToInt32();
            WS ws2 = (ws & ~removeStyle) | addStyle;
            if (ws == ws2)
            {
                return false;
            }
            SetWindowLongPtr(hwnd, GWL.STYLE, new IntPtr((int)ws2));
            return true;
        }

        [DllImport("user32.dll", ExactSpelling = true)]
        public static extern IntPtr MonitorFromRect(ref RECT rect, int flags);
        [return: MarshalAs(UnmanagedType.Bool)]
        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool PostMessage(IntPtr hWnd, WM Msg, IntPtr wParam, IntPtr lParam);
        public static IntPtr SetWindowLongPtr(IntPtr hwnd, GWL nIndex, IntPtr dwNewLong)
        {
            if (8 == IntPtr.Size)
            {
                return SetWindowLongPtr64(hwnd, nIndex, dwNewLong);
            }
            return SetWindowLongPtr32(hwnd, nIndex, dwNewLong);
        }

        [DllImport("user32.dll", EntryPoint = "SetWindowLong", SetLastError = true)]
        private static extern IntPtr SetWindowLongPtr32(IntPtr hWnd, GWL nIndex, IntPtr dwNewLong);
        [DllImport("user32.dll", EntryPoint = "GetWindowLongPtr", SetLastError = true)]
        private static extern IntPtr SetWindowLongPtr64(IntPtr hWnd, GWL nIndex, IntPtr dwNewLong);
        [return: MarshalAs(UnmanagedType.Bool)]
        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, SWP uFlags);

        public static bool IsCompositionEnabled
        {
            get
            {
                bool flag;
                if (Environment.OSVersion.Version.Major < 6)
                {
                    return false;
                }
                DwmIsCompositionEnabled(out flag);
                return flag;
            }
        }

        public enum GWL
        {
            EXSTYLE = -20,
            HINSTANCE = -6,
            HWNDPARENT = -8,
            ID = -12,
            STYLE = -16,
            USERDATA = -21,
            WNDPROC = -4
        }

        public enum HT
        {
            BORDER = 0x12,
            BOTTOM = 15,
            BOTTOMLEFT = 0x10,
            BOTTOMRIGHT = 0x11,
            CAPTION = 2,
            CLIENT = 1,
            CLOSE = 20,
            ERROR = -2,
            GROWBOX = 4,
            HELP = 0x15,
            HSCROLL = 6,
            LEFT = 10,
            MAXBUTTON = 9,
            MENU = 5,
            MINBUTTON = 8,
            NOWHERE = 0,
            OBJECT = 0x13,
            RIGHT = 11,
            SYSMENU = 3,
            TOP = 12,
            TOPLEFT = 13,
            TOPRIGHT = 14,
            TRANSPARENT = -1,
            VSCROLL = 7
        }


        [Flags]
        public enum MF : int
        {
            BYCOMMAND = 0,
            DISABLED = 2,
            ENABLED = 0,
            GRAYED = 1
        }

        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto, Pack = 4)]
        public class MONITORINFOEX
        {
            public int cbSize = Marshal.SizeOf(typeof(MONITORINFOEX));
            public RECT rcMonitor = new RECT();
            public RECT rcWork = new RECT();
            public int dwFlags;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x20)]
            public char[] szDevice = new char[0x20];
        }


        public enum SC
        {
            ARRANGE = 0xf110,
            CLOSE = 0xf060,
            CONTEXTHELP = 0xf180,
            DEFAULT = 0xf160,
            F_ISSECURE = 1,
            HOTKEY = 0xf150,
            HSCROLL = 0xf080,
            ICON = 0xf020,
            KEYMENU = 0xf100,
            MAXIMIZE = 0xf030,
            MINIMIZE = 0xf020,
            MONITORPOWER = 0xf170,
            MOUSEMENU = 0xf090,
            MOVE = 0xf010,
            NEXTWINDOW = 0xf040,
            PREVWINDOW = 0xf050,
            RESTORE = 0xf120,
            SCREENSAVE = 0xf140,
            SEPARATOR = 0xf00f,
            SIZE = 0xf000,
            TASKLIST = 0xf130,
            VSCROLL = 0xf070,
            ZOOM = 0xf030
        }

        [Flags]
        public enum SWP
        {
            ASYNCWINDOWPOS = 0x4000,
            DEFERERASE = 0x2000,
            DRAWFRAME = 0x20,
            FRAMECHANGED = 0x20,
            HIDEWINDOW = 0x80,
            NOACTIVATE = 0x10,
            NOCOPYBITS = 0x100,
            NOMOVE = 2,
            NOOWNERZORDER = 0x200,
            NOREDRAW = 8,
            NOREPOSITION = 0x200,
            NOSENDCHANGING = 0x400,
            NOSIZE = 1,
            NOZORDER = 4,
            SHOWWINDOW = 0x40
        }

        public enum WM
        {
            ACTIVATE = 6,
            APP = 0x8000,
            CLOSE = 0x10,
            CREATE = 1,
            DESTROY = 2,
            DWMCOMPOSITIONCHANGED = 0x31e,
            ENABLE = 10,
            ERASEBKGND = 20,
            GETDLGCODE = 0x87,
            GETTEXT = 13,
            GETTEXTLENGTH = 14,
            KILLFOCUS = 8,
            MOVE = 3,
            NCACTIVATE = 0x86,
            NCCALCSIZE = 0x83,
            NCCREATE = 0x81,
            NCDESTROY = 130,
            NCHITTEST = 0x84,
            NCLBUTTONDBLCLK = 0xa3,
            NCLBUTTONDOWN = 0xa1,
            NCLBUTTONUP = 0xa2,
            NCMBUTTONDBLCLK = 0xa9,
            NCMBUTTONDOWN = 0xa7,
            NCMBUTTONUP = 0xa8,
            NCMOUSEMOVE = 160,
            NCPAINT = 0x85,
            NCRBUTTONDBLCLK = 0xa6,
            NCRBUTTONDOWN = 0xa4,
            NCRBUTTONUP = 0xa5,
            NULL = 0,
            PAINT = 15,
            QUERYENDSESSION = 0x11,
            QUERYOPEN = 0x13,
            QUIT = 0x12,
            SETFOCUS = 7,
            SETICON = 0x80,
            SETREDRAW = 11,
            SETTEXT = 12,
            SIZE = 5,
            SYNCPAINT = 0x88,
            SYSCHAR = 0x106,
            SYSCOLORCHANGE = 0x15,
            SYSCOMMAND = 0x112,
            SYSDEADCHAR = 0x107,
            SYSKEYDOWN = 260,
            SYSKEYUP = 0x105,
            USER = 0x400,
            WINDOWPOSCHANGED = 0x47,
            WINDOWPOSCHANGING = 70
        }

        [Flags]
        public enum WS : int
        {
            BORDER = 0x800000,
            CAPTION = 0xc00000,
            CHILD = 0x40000000,
            CHILDWINDOW = 0x40000000,
            CLIPCHILDREN = 0x2000000,
            CLIPSIBLINGS = 0x4000000,
            DISABLED = 0x8000000,
            DLGFRAME = 0x400000,
            GROUP = 0x20000,
            HSCROLL = 0x100000,
            ICONIC = 0x20000000,
            MAXIMIZE = 0x1000000,
            MAXIMIZEBOX = 0x10000,
            MINIMIZE = 0x20000000,
            MINIMIZEBOX = 0x20000,
            OVERLAPPED = 0,
            OVERLAPPEDWINDOW = 0xcf0000,
            POPUP = unchecked((int)0x80000000),
            POPUPWINDOW = unchecked((int)0x80880000),
            SIZEBOX = 0x40000,
            SYSMENU = 0x80000,
            TABSTOP = 0x10000,
            THICKFRAME = 0x40000,
            TILED = 0,
            TILEDWINDOW = 0xcf0000,
            VISIBLE = 0x10000000,
            VSCROLL = 0x200000
        }

        [Flags]
        public enum WS_EX : int
        {
            ACCEPTFILES = 0x10,
            APPWINDOW = 0x40000,
            CLIENTEDGE = 0x200,
            COMPOSITED = 0x2000000,
            CONTEXTHELP = 0x400,
            CONTROLPARENT = 0x10000,
            DLGMODALFRAME = 1,
            LAYERED = 0x80000,
            LAYOUTRTL = 0x400000,
            LEFT = 0,
            LEFTSCROLLBAR = 0x4000,
            LTRREADING = 0,
            MDICHILD = 0x40,
            NOACTIVATE = 0x8000000,
            NOINHERITLAYOUT = 0x100000,
            None = 0,
            NOPARENTNOTIFY = 4,
            OVERLAPPEDWINDOW = 0x300,
            PALETTEWINDOW = 0x188,
            RIGHT = 0x1000,
            RIGHTSCROLLBAR = 0,
            RTLREADING = 0x2000,
            STATICEDGE = 0x20000,
            TOOLWINDOW = 0x80,
            TOPMOST = 8,
            TRANSPARENT = 0x20,
            WINDOWEDGE = 0x100
        }
        #endregion

        #endregion

        #region Special Wrappers

        #region UXTheme

        #region TMSchema
        public const int THEMEMGR_VERSION = 1;

        public const int BT_IMAGEFILE = 0;
        public const int BT_BORDERFILL = 1;
        public const int BT_NONE = 2;

        public const int IL_VERTICAL = 0;
        public const int IL_HORIZONTAL = 1;

        public const int BT_RECT = 0;
        public const int BT_ROUNDRECT = 1;
        public const int BT_ELLIPSE = 2;

        public const int FT_SOLID = 0;
        public const int FT_VERTGRADIENT = 1;
        public const int FT_HORZGRADIENT = 2;
        public const int FT_RADIALGRADIENT = 3;
        public const int FT_TILEIMAGE = 4;

        public const int ST_TRUESIZE = 0;
        public const int ST_STRETCH = 1;
        public const int ST_TILE = 2;

        public const int HA_LEFT = 0;
        public const int HA_CENTER = 1;
        public const int HA_RIGHT = 2;

        public const int CA_LEFT = 0;
        public const int CA_CENTER = 1;
        public const int CA_RIGHT = 2;

        public const int VA_TOP = 0;
        public const int VA_CENTER = 1;
        public const int VA_BOTTOM = 2;

        public const int OT_TOPLEFT = 0;
        public const int OT_TOPRIGHT = 1;
        public const int OT_TOPMIDDLE = 2;
        public const int OT_BOTTOMLEFT = 3;
        public const int OT_BOTTOMRIGHT = 4;
        public const int OT_BOTTOMMIDDLE = 5;
        public const int OT_MIDDLELEFT = 6;
        public const int OT_MIDDLERIGHT = 7;
        public const int OT_LEFTOFCAPTION = 8;
        public const int OT_RIGHTOFCAPTION = 9;
        public const int OT_LEFTOFLASTBUTTON = 10;
        public const int OT_RIGHTOFLASTBUTTON = 11;
        public const int OT_ABOVELASTBUTTON = 12;
        public const int OT_BELOWLASTBUTTON = 13;

        public const int ICE_NONE = 0;
        public const int ICE_GLOW = 1;
        public const int ICE_SHADOW = 2;
        public const int ICE_PULSE = 3;
        public const int ICE_ALPHA = 4;

        public const int TST_NONE = 0;
        public const int TST_SINGLE = 1;
        public const int TST_CONTINUOUS = 2;

        public const int GT_NONE = 0;
        public const int GT_IMAGEGLYPH = 1;
        public const int GT_FONTGLYPH = 2;

        public const int IST_NONE = 0;
        public const int IST_SIZE = 1;
        public const int IST_DPI = 2;

        public const int TSST_NONE = 0;
        public const int TSST_SIZE = 1;
        public const int TSST_DPI = 2;

        public const int GFST_NONE = 0;
        public const int GFST_SIZE = 1;
        public const int GFST_DPI = 2;
        //---- primitive types ----
        public const int TMT_STRING = 201;
        public const int TMT_INT = 202;
        public const int TMT_BOOL = 203;
        public const int TMT_COLOR = 204;
        public const int TMT_MARGINS = 205;
        public const int TMT_FILENAME = 206;
        public const int TMT_SIZE = 207;
        public const int TMT_POSITION = 208;
        public const int TMT_RECT = 209;
        public const int TMT_FONT = 210;
        public const int TMT_INTLIST = 211;		//---- special misc. properties ----
        public const int TMT_COLORSCHEMES = 401;
        public const int TMT_SIZES = 402;
        public const int TMT_CHARSET = 403;		//---- [documentation] properties ----		public const int TMT_DISPLAYNAME = 601;
        public const int TMT_TOOLTIP = 602;
        public const int TMT_COMPANY = 603;
        public const int TMT_AUTHOR = 604;
        public const int TMT_COPYRIGHT = 605;
        public const int TMT_URL = 606;
        public const int TMT_VERSION = 607;
        public const int TMT_DESCRIPTION = 608;		//---- theme metrics: fonts ----		public const int TMT_CAPTIONFONT = 801;
        public const int TMT_SMALLCAPTIONFONT = 802;
        public const int TMT_MENUFONT = 803;
        public const int TMT_STATUSFONT = 804;
        public const int TMT_MSGBOXFONT = 805;
        public const int TMT_ICONTITLEFONT = 806;		//---- theme metrics: bools ----		public const int TMT_FLATMENUS = 1001;		//---- theme metrics: sizes ----		public const int TMT_SIZINGBORDERWIDTH = 1201;
        public const int TMT_SCROLLBARWIDTH = 1202;
        public const int TMT_SCROLLBARHEIGHT = 1203;
        public const int TMT_CAPTIONBARWIDTH = 1204;
        public const int TMT_CAPTIONBARHEIGHT = 1205;
        public const int TMT_SMCAPTIONBARWIDTH = 1206;
        public const int TMT_SMCAPTIONBARHEIGHT = 1207;
        public const int TMT_MENUBARWIDTH = 1208;
        public const int TMT_MENUBARHEIGHT = 1209;		//---- theme metrics: ints ----		public const int TMT_MINCOLORDEPTH = 1301;		//---- theme metrics: strings ----		public const int TMT_CSSNAME = 1401;
        public const int TMT_XMLNAME = 1402;		//---- theme metrics: colors ----		public const int TMT_SCROLLBAR = 1601;
        public const int TMT_BACKGROUND = 1602;
        public const int TMT_ACTIVECAPTION = 1603;
        public const int TMT_INACTIVECAPTION = 1604;
        public const int TMT_MENU = 1605;
        public const int TMT_WINDOW = 1606;
        public const int TMT_WINDOWFRAME = 1607;
        public const int TMT_MENUTEXT = 1608;
        public const int TMT_WINDOWTEXT = 1609;
        public const int TMT_CAPTIONTEXT = 1610;
        public const int TMT_ACTIVEBORDER = 1611;
        public const int TMT_INACTIVEBORDER = 1612;
        public const int TMT_APPWORKSPACE = 1613;
        public const int TMT_HIGHLIGHT = 1614;
        public const int TMT_HIGHLIGHTTEXT = 1615;
        public const int TMT_BTNFACE = 1616;
        public const int TMT_BTNSHADOW = 1617;
        public const int TMT_GRAYTEXT = 1618;
        public const int TMT_BTNTEXT = 1619;
        public const int TMT_INACTIVECAPTIONTEXT = 1620;
        public const int TMT_BTNHIGHLIGHT = 1621;
        public const int TMT_DKSHADOW3D = 1622;
        public const int TMT_LIGHT3D = 1623;
        public const int TMT_INFOTEXT = 1624;
        public const int TMT_INFOBK = 1625;
        public const int TMT_BUTTONALTERNATEFACE = 1626;
        public const int TMT_HOTTRACKING = 1627;
        public const int TMT_GRADIENTACTIVECAPTION = 1628;
        public const int TMT_GRADIENTINACTIVECAPTION = 1629;
        public const int TMT_MENUHILIGHT = 1630;
        public const int TMT_MENUBAR = 1631;		//---- hue substitutions ----
        public const int TMT_FROMHUE1 = 1801;
        public const int TMT_FROMHUE2 = 1802;
        public const int TMT_FROMHUE3 = 1803;
        public const int TMT_FROMHUE4 = 1804;
        public const int TMT_FROMHUE5 = 1805;
        public const int TMT_TOHUE1 = 1806;
        public const int TMT_TOHUE2 = 1807;
        public const int TMT_TOHUE3 = 1808;
        public const int TMT_TOHUE4 = 1809;
        public const int TMT_TOHUE5 = 1810;		//---- color substitutions ----
        public const int TMT_FROMCOLOR1 = 2001;
        public const int TMT_FROMCOLOR2 = 2002;
        public const int TMT_FROMCOLOR3 = 2003;
        public const int TMT_FROMCOLOR4 = 2004;
        public const int TMT_FROMCOLOR5 = 2005;
        public const int TMT_TOCOLOR1 = 2006;
        public const int TMT_TOCOLOR2 = 2007;
        public const int TMT_TOCOLOR3 = 2008;
        public const int TMT_TOCOLOR4 = 2009;
        public const int TMT_TOCOLOR5 = 2010;		//---- rendering BOOL properties ----
        public const int TMT_TRANSPARENT = 2201;       // image has transparent areas (see TransparentColor)
        public const int TMT_AUTOSIZE = 2202;       // if TRUE, nonclient caption width varies with text extent
        public const int TMT_BORDERONLY = 2203;       // only draw the border area of the image
        public const int TMT_COMPOSITED = 2204;       // control will handle the composite drawing
        public const int TMT_BGFILL = 2205;       // if TRUE, TRUESIZE images should be drawn on bg fill
        public const int TMT_GLYPHTRANSPARENT = 2206;   // glyph has transparent areas (see GlyphTransparentColor)
        public const int TMT_GLYPHONLY = 2207;   // only draw glyph (not background)
        public const int TMT_ALWAYSSHOWSIZINGBAR = 2208;
        public const int TMT_MIRRORIMAGE = 2209; // default=TRUE means image gets mirrored in RTL (Mirror) windows
        public const int TMT_UNIFORMSIZING = 2210; // if TRUE, height & width must be uniformly sized 
        public const int TMT_INTEGRALSIZING = 2211; // for TRUESIZE and Border sizing; if TRUE, factor must be integer
        public const int TMT_SOURCEGROW = 2212; // if TRUE, will scale up src image when needed
        public const int TMT_SOURCESHRINK = 2213; // if TRUE, will scale down src image when needed		//---- rendering INT properties ----
        public const int TMT_IMAGECOUNT = 2401;    // the number of state images in an imagefile
        public const int TMT_ALPHALEVEL = 2402;    // (0-255) alpha value for an icon (DrawThemeIcon part)
        public const int TMT_BORDERSIZE = 2403;    // the size of the border line for bgtype=BorderFill
        public const int TMT_ROUNDCORNERWIDTH = 2404;    // (0-100) % of roundness for rounded rects
        public const int TMT_ROUNDCORNERHEIGHT = 2405;    // (0-100) % of roundness for rounded rects
        public const int TMT_GRADIENTRATIO1 = 2406;    // (0-255) - amt of gradient color 1 to use (all must total=255)
        public const int TMT_GRADIENTRATIO2 = 2407;    // (0-255) - amt of gradient color 2 to use (all must total=255)
        public const int TMT_GRADIENTRATIO3 = 2408;    // (0-255) - amt of gradient color 3 to use (all must total=255)
        public const int TMT_GRADIENTRATIO4 = 2409;    // (0-255) - amt of gradient color 4 to use (all must total=255)
        public const int TMT_GRADIENTRATIO5 = 2410;    // (0-255) - amt of gradient color 5 to use (all must total=255)
        public const int TMT_PROGRESSCHUNKSIZE = 2411;    // size of progress control chunks
        public const int TMT_PROGRESSSPACESIZE = 2412;    // size of progress control spaces
        public const int TMT_SATURATION = 2413;    // (0-255) amt of saturation for DrawThemeIcon() part
        public const int TMT_TEXTBORDERSIZE = 2414;    // size of border around text chars
        public const int TMT_ALPHATHRESHOLD = 2415;    // (0-255) the min. alpha value of a pixel that is solid
        public const int TMT_WIDTH = 2416;   // custom window prop: size of part (min. window)
        public const int TMT_HEIGHT = 2417;   // custom window prop: size of part (min. window)
        public const int TMT_GLYPHINDEX = 2418;    // for font-based glyphs, the char index into the font
        public const int TMT_TRUESIZESTRETCHMARK = 2419;  // stretch TrueSize image when target exceeds source by this percent
        public const int TMT_MINDPI1 = 2420;      // min DPI ImageFile1 was designed for
        public const int TMT_MINDPI2 = 2421;      // min DPI ImageFile1 was designed for
        public const int TMT_MINDPI3 = 2422;      // min DPI ImageFile1 was designed for
        public const int TMT_MINDPI4 = 2423;      // min DPI ImageFile1 was designed for
        public const int TMT_MINDPI5 = 2424;      // min DPI ImageFile1 was designed for		//---- rendering FONT properties ----
        public const int TMT_GLYPHFONT = 2601;   // the font that the glyph is drawn with		//---- rendering INTLIST properties ----
        // start with 2801
        // (from smallest to largest)
        //---- rendering FILENAME properties ----
        public const int TMT_IMAGEFILE = 3001;   // the filename of the image (or basename, for mult. images)
        public const int TMT_IMAGEFILE1 = 3002;   // multiresolution image file
        public const int TMT_IMAGEFILE2 = 3003;   // multiresolution image file
        public const int TMT_IMAGEFILE3 = 3004;   // multiresolution image file
        public const int TMT_IMAGEFILE4 = 3005;   // multiresolution image file
        public const int TMT_IMAGEFILE5 = 3006;   // multiresolution image file
        public const int TMT_STOCKIMAGEFILE = 3007;   // These are the only images that you can call GetThemeBitmap on
        public const int TMT_GLYPHIMAGEFILE = 3008;   // the filename for the glyph image		//---- rendering STRING properties ----
        public const int TMT_TEXT = 3201;		//---- rendering POSITION (x and y values) properties ----
        public const int TMT_OFFSET = 3401;   // for window part layout
        public const int TMT_TEXTSHADOWOFFSET = 3402;   // where char shadows are drawn, relative to orig. chars
        public const int TMT_MINSIZE = 3403;   // min dest rect than ImageFile was designed for
        public const int TMT_MINSIZE1 = 3404;   // min dest rect than ImageFile1 was designed for
        public const int TMT_MINSIZE2 = 3405;   // min dest rect than ImageFile2 was designed for
        public const int TMT_MINSIZE3 = 3406;   // min dest rect than ImageFile3 was designed for
        public const int TMT_MINSIZE4 = 3407;   // min dest rect than ImageFile4 was designed for
        public const int TMT_MINSIZE5 = 3408;   // min dest rect than ImageFile5 was designed for
        public const int TMT_NORMALSIZE = 3409;   // size of dest rect that exactly source		//---- rendering MARGIN properties ----
        public const int TMT_SIZINGMARGINS = 3601;    // margins used for 9-grid sizing
        public const int TMT_CONTENTMARGINS = 3602;    // margins that define where content can be placed
        public const int TMT_CAPTIONMARGINS = 3603;    // margins that define where caption text can be placed		//---- rendering COLOR properties ----
        public const int TMT_BORDERCOLOR = 3801;       // color of borders for BorderFill 
        public const int TMT_FILLCOLOR = 3802;       // color of bg fill 
        public const int TMT_TEXTCOLOR = 3803;       // color text is drawn in
        public const int TMT_EDGELIGHTCOLOR = 3804;     // edge color
        public const int TMT_EDGEHIGHLIGHTCOLOR = 3805;     // edge color
        public const int TMT_EDGESHADOWCOLOR = 3806;     // edge color
        public const int TMT_EDGEDKSHADOWCOLOR = 3807;     // edge color
        public const int TMT_EDGEFILLCOLOR = 3808;         // edge color
        public const int TMT_TRANSPARENTCOLOR = 3809;       // color of pixels that are treated as transparent (not drawn)
        public const int TMT_GRADIENTCOLOR1 = 3810;       // first color in gradient
        public const int TMT_GRADIENTCOLOR2 = 3811;       // second color in gradient
        public const int TMT_GRADIENTCOLOR3 = 3812;       // third color in gradient
        public const int TMT_GRADIENTCOLOR4 = 3813;       // forth color in gradient
        public const int TMT_GRADIENTCOLOR5 = 3814;       // fifth color in gradient
        public const int TMT_SHADOWCOLOR = 3815;       // color of text shadow
        public const int TMT_GLOWCOLOR = 3816;       // color of glow produced by DrawThemeIcon
        public const int TMT_TEXTBORDERCOLOR = 3817;       // color of text border
        public const int TMT_TEXTSHADOWCOLOR = 3818;       // color of text shadow
        public const int TMT_GLYPHTEXTCOLOR = 3819;  // color that font-based glyph is drawn with
        public const int TMT_GLYPHTRANSPARENTCOLOR = 3820;  // color of transparent pixels in GlyphImageFile
        public const int TMT_FILLCOLORHINT = 3821;          // hint about fill color used (for custom controls)
        public const int TMT_BORDERCOLORHINT = 3822;        // hint about border color used (for custom controls)
        public const int TMT_ACCENTCOLORHINT = 3823;        // hint about accent color used (for custom controls)		//---- rendering enum properties (must be declared in TM_ENUM section above) ----
        public const int TMT_BGTYPE = 4001;        // basic drawing type for each part
        public const int TMT_BORDERTYPE = 4002;        // type of border for BorderFill parts
        public const int TMT_FILLTYPE = 4003;        // fill shape for BorderFill parts
        public const int TMT_SIZINGTYPE = 4004;        // how to size ImageFile parts
        public const int TMT_HALIGN = 4005;        // horizontal alignment for TRUESIZE parts & glyphs
        public const int TMT_CONTENTALIGNMENT = 4006;        // custom window prop: how text is aligned in caption
        public const int TMT_VALIGN = 4007;        // horizontal alignment for TRUESIZE parts & glyphs
        public const int TMT_OFFSETTYPE = 4008;        // how window part should be placed
        public const int TMT_ICONEFFECT = 4009;        // type of effect to use with DrawThemeIcon
        public const int TMT_TEXTSHADOWTYPE = 4010;        // type of shadow to draw with text
        public const int TMT_IMAGELAYOUT = 4011;        // how multiple images are arranged (horz. or vert.)
        public const int TMT_GLYPHTYPE = 4012;   // controls type of glyph in imagefile objects
        public const int TMT_IMAGESELECTTYPE = 4013;   // controls when to select from IMAGEFILE1...IMAGEFILE5
        public const int TMT_GLYPHFONTSIZINGTYPE = 4014;   // controls when to select a bigger/small glyph font size
        public const int TMT_TRUESIZESCALINGTYPE = 4015;   // controls how TrueSize image is scaled

        //---- custom properties (used only by controls/shell) ----
        public const int TMT_USERPICTURE = 5001;
        public const int TMT_DEFAULTPANESIZE = 5002;
        public const int TMT_BLENDCOLOR = 5003;
        //   "Window" (i.e., non-client) Parts & States
        //
        //    these cannot be renumbered (part of uxtheme API)


        public const int WP_CAPTION = 1;
        public const int WP_SMALLCAPTION = 2;
        public const int WP_MINCAPTION = 3;
        public const int WP_SMALLMINCAPTION = 4;
        public const int WP_MAXCAPTION = 5;
        public const int WP_SMALLMAXCAPTION = 6;
        public const int WP_FRAMELEFT = 7;
        public const int WP_FRAMERIGHT = 8;
        public const int WP_FRAMEBOTTOM = 9;
        public const int WP_SMALLFRAMELEFT = 10;
        public const int WP_SMALLFRAMERIGHT = 11;
        public const int WP_SMALLFRAMEBOTTOM = 12;
        //---- window frame buttons ----
        public const int WP_SYSBUTTON = 13;
        public const int WP_MDISYSBUTTON = 14;
        public const int WP_MINBUTTON = 15;
        public const int WP_MDIMINBUTTON = 16;
        public const int WP_MAXBUTTON = 17;
        public const int WP_CLOSEBUTTON = 18;
        public const int WP_SMALLCLOSEBUTTON = 19;
        public const int WP_MDICLOSEBUTTON = 20;
        public const int WP_RESTOREBUTTON = 21;
        public const int WP_MDIRESTOREBUTTON = 22;
        public const int WP_HELPBUTTON = 23;
        public const int WP_MDIHELPBUTTON = 24;
        //---- scrollbars 
        public const int WP_HORZSCROLL = 25;
        public const int WP_HORZTHUMB = 26;
        public const int WP_VERTSCROLL = 27;
        public const int WP_VERTTHUMB = 28;
        //---- dialog ----
        public const int WP_DIALOG = 29;
        //---- hit-test templates ---
        public const int WP_CAPTIONSIZINGTEMPLATE = 30;
        public const int WP_SMALLCAPTIONSIZINGTEMPLATE = 31;
        public const int WP_FRAMELEFTSIZINGTEMPLATE = 32;
        public const int WP_SMALLFRAMELEFTSIZINGTEMPLATE = 33;
        public const int WP_FRAMERIGHTSIZINGTEMPLATE = 34;
        public const int WP_SMALLFRAMERIGHTSIZINGTEMPLATE = 35;
        public const int WP_FRAMEBOTTOMSIZINGTEMPLATE = 36;
        public const int WP_SMALLFRAMEBOTTOMSIZINGTEMPLATE = 37;

        public const int FS_ACTIVE = 1;
        public const int FS_INACTIVE = 2;

        public const int CS_ACTIVE = 1;
        public const int CS_INACTIVE = 2;
        public const int CS_DISABLED = 3;



        public const int MXCS_ACTIVE = 1;
        public const int MXCS_INACTIVE = 2;
        public const int MXCS_DISABLED = 3;

        public const int MNCS_ACTIVE = 1;
        public const int MNCS_INACTIVE = 2;
        public const int MNCS_DISABLED = 3;

        public const int HSS_NORMAL = 1;
        public const int HSS_HOT = 2;
        public const int HSS_PUSHED = 3;
        public const int HSS_DISABLED = 4;

        public const int HTS_NORMAL = 1;
        public const int HTS_HOT = 2;
        public const int HTS_PUSHED = 3;
        public const int HTS_DISABLED = 4;

        public const int VSS_NORMAL = 1;
        public const int VSS_HOT = 2;
        public const int VSS_PUSHED = 3;
        public const int VSS_DISABLED = 4;

        public const int VTS_NORMAL = 1;
        public const int VTS_HOT = 2;
        public const int VTS_PUSHED = 3;
        public const int VTS_DISABLED = 4;

        public const int SBS_NORMAL = 1;
        public const int SBS_HOT = 2;
        public const int SBS_PUSHED = 3;
        public const int SBS_DISABLED = 4;

        public const int MINBS_NORMAL = 1;
        public const int MINBS_HOT = 2;
        public const int MINBS_PUSHED = 3;
        public const int MINBS_DISABLED = 4;

        public const int MAXBS_NORMAL = 1;
        public const int MAXBS_HOT = 2;
        public const int MAXBS_PUSHED = 3;
        public const int MAXBS_DISABLED = 4;

        public const int RBS_NORMAL = 1;
        public const int RBS_HOT = 2;
        public const int RBS_PUSHED = 3;
        public const int RBS_DISABLED = 4;

        public const int HBS_NORMAL = 1;
        public const int HBS_HOT = 2;
        public const int HBS_PUSHED = 3;
        public const int HBS_DISABLED = 4;

        public const int CBS_NORMAL = 1;
        public const int CBS_HOT = 2;
        public const int CBS_PUSHED = 3;
        public const int CBS_DISABLED = 4;

        //   "Button" Parts & States


        public const int BP_PUSHBUTTON = 1;
        public const int BP_RADIOBUTTON = 2;
        public const int BP_CHECKBOX = 3;
        public const int BP_GROUPBOX = 4;
        public const int BP_USERBUTTON = 5;

        public const int PBS_NORMAL = 1;
        public const int PBS_HOT = 2;
        public const int PBS_PRESSED = 3;
        public const int PBS_DISABLED = 4;
        public const int PBS_DEFAULTED = 5;

        public const int RBS_UNCHECKEDNORMAL = 1;
        public const int RBS_UNCHECKEDHOT = 2;
        public const int RBS_UNCHECKEDPRESSED = 3;
        public const int RBS_UNCHECKEDDISABLED = 4;
        public const int RBS_CHECKEDNORMAL = 5;
        public const int RBS_CHECKEDHOT = 6;
        public const int RBS_CHECKEDPRESSED = 7;
        public const int RBS_CHECKEDDISABLED = 8;

        public const int CBS_UNCHECKEDNORMAL = 1;
        public const int CBS_UNCHECKEDHOT = 2;
        public const int CBS_UNCHECKEDPRESSED = 3;
        public const int CBS_UNCHECKEDDISABLED = 4;
        public const int CBS_CHECKEDNORMAL = 5;
        public const int CBS_CHECKEDHOT = 6;
        public const int CBS_CHECKEDPRESSED = 7;
        public const int CBS_CHECKEDDISABLED = 8;
        public const int CBS_MIXEDNORMAL = 9;
        public const int CBS_MIXEDHOT = 10;
        public const int CBS_MIXEDPRESSED = 11;
        public const int CBS_MIXEDDISABLED = 12;

        public const int GBS_NORMAL = 1;
        public const int GBS_DISABLED = 2;

        //   "Rebar" Parts & States


        public const int RP_GRIPPER = 1;
        public const int RP_GRIPPERVERT = 2;
        public const int RP_BAND = 3;
        public const int RP_CHEVRON = 4;
        public const int RP_CHEVRONVERT = 5;

        public const int CHEVS_NORMAL = 1;
        public const int CHEVS_HOT = 2;
        public const int CHEVS_PRESSED = 3;

        //   "Toolbar" Parts & States


        public const int TP_BUTTON = 1;
        public const int TP_DROPDOWNBUTTON = 2;
        public const int TP_SPLITBUTTON = 3;
        public const int TP_SPLITBUTTONDROPDOWN = 4;
        public const int TP_SEPARATOR = 5;
        public const int TP_SEPARATORVERT = 6;

        public const int TS_NORMAL = 1;
        public const int TS_HOT = 2;
        public const int TS_PRESSED = 3;
        public const int TS_DISABLED = 4;
        public const int TS_CHECKED = 5;
        public const int TS_HOTCHECKED = 6;

        //   "Status" Parts & States


        public const int SP_PANE = 1;
        public const int SP_GRIPPERPANE = 2;
        public const int SP_GRIPPER = 3;

        //   "Menu" Parts & States


        public const int MP_MENUITEM = 1;
        public const int MP_MENUDROPDOWN = 2;
        public const int MP_MENUBARITEM = 3;
        public const int MP_MENUBARDROPDOWN = 4;
        public const int MP_CHEVRON = 5;
        public const int MP_SEPARATOR = 6;

        public const int MS_NORMAL = 1;
        public const int MS_SELECTED = 2;
        public const int MS_DEMOTED = 3;

        //   "ListView" Parts & States


        public const int LVP_LISTITEM = 1;
        public const int LVP_LISTGROUP = 2;
        public const int LVP_LISTDETAIL = 3;
        public const int LVP_LISTSORTEDDETAIL = 4;
        public const int LVP_EMPTYTEXT = 5;

        public const int LIS_NORMAL = 1;
        public const int LIS_HOT = 2;
        public const int LIS_SELECTED = 3;
        public const int LIS_DISABLED = 4;
        public const int LIS_SELECTEDNOTFOCUS = 5;

        //   "Header" Parts & States


        public const int HP_HEADERITEM = 1;
        public const int HP_HEADERITEMLEFT = 2;
        public const int HP_HEADERITEMRIGHT = 3;
        public const int HP_HEADERSORTARROW = 4;

        public const int HIS_NORMAL = 1;
        public const int HIS_HOT = 2;
        public const int HIS_PRESSED = 3;

        public const int HILS_NORMAL = 1;
        public const int HILS_HOT = 2;
        public const int HILS_PRESSED = 3;

        public const int HIRS_NORMAL = 1;
        public const int HIRS_HOT = 2;
        public const int HIRS_PRESSED = 3;

        public const int HSAS_SORTEDUP = 1;
        public const int HSAS_SORTEDDOWN = 2;


        //   "Progress" Parts & States


        public const int PP_BAR = 1;
        public const int PP_BARVERT = 2;
        public const int PP_CHUNK = 3;
        public const int PP_CHUNKVERT = 4;

        //   "Tab" Parts & States


        public const int TABP_TABITEM = 1;
        public const int TABP_TABITEMLEFTEDGE = 2;
        public const int TABP_TABITEMRIGHTEDGE = 3;
        public const int TABP_TABITEMBOTHEDGE = 4;
        public const int TABP_TOPTABITEM = 5;
        public const int TABP_TOPTABITEMLEFTEDGE = 6;
        public const int TABP_TOPTABITEMRIGHTEDGE = 7;
        public const int TABP_TOPTABITEMBOTHEDGE = 8;
        public const int TABP_PANE = 9;
        public const int TABP_BODY = 10;

        public const int TIS_NORMAL = 1;
        public const int TIS_HOT = 2;
        public const int TIS_SELECTED = 3;
        public const int TIS_DISABLED = 4;
        public const int TIS_FOCUSED = 5;

        public const int TILES_NORMAL = 1;
        public const int TILES_HOT = 2;
        public const int TILES_SELECTED = 3;
        public const int TILES_DISABLED = 4;
        public const int TILES_FOCUSED = 5;

        public const int TIRES_NORMAL = 1;
        public const int TIRES_HOT = 2;
        public const int TIRES_SELECTED = 3;
        public const int TIRES_DISABLED = 4;
        public const int TIRES_FOCUSED = 5;

        public const int TIBES_NORMAL = 1;
        public const int TIBES_HOT = 2;
        public const int TIBES_SELECTED = 3;
        public const int TIBES_DISABLED = 4;
        public const int TIBES_FOCUSED = 5;

        public const int TTIS_NORMAL = 1;
        public const int TTIS_HOT = 2;
        public const int TTIS_SELECTED = 3;
        public const int TTIS_DISABLED = 4;
        public const int TTIS_FOCUSED = 5;

        public const int TTILES_NORMAL = 1;
        public const int TTILES_HOT = 2;
        public const int TTILES_SELECTED = 3;
        public const int TTILES_DISABLED = 4;
        public const int TTILES_FOCUSED = 5;

        public const int TTIRES_NORMAL = 1;
        public const int TTIRES_HOT = 2;
        public const int TTIRES_SELECTED = 3;
        public const int TTIRES_DISABLED = 4;
        public const int TTIRES_FOCUSED = 5;

        public const int TTIBES_NORMAL = 1;
        public const int TTIBES_HOT = 2;
        public const int TTIBES_SELECTED = 3;
        public const int TTIBES_DISABLED = 4;
        public const int TTIBES_FOCUSED = 5;

        //   "Trackbar" Parts & States


        public const int TKP_TRACK = 1;
        public const int TKP_TRACKVERT = 2;
        public const int TKP_THUMB = 3;
        public const int TKP_THUMBBOTTOM = 4;
        public const int TKP_THUMBTOP = 5;
        public const int TKP_THUMBVERT = 6;
        public const int TKP_THUMBLEFT = 7;
        public const int TKP_THUMBRIGHT = 8;
        public const int TKP_TICS = 9;
        public const int TKP_TICSVERT = 10;

        public const int TKS_NORMAL = 1;

        public const int TRS_NORMAL = 1;

        public const int TRVS_NORMAL = 1;

        public const int TUS_NORMAL = 1;
        public const int TUS_HOT = 2;
        public const int TUS_PRESSED = 3;
        public const int TUS_FOCUSED = 4;
        public const int TUS_DISABLED = 5;

        public const int TUBS_NORMAL = 1;
        public const int TUBS_HOT = 2;
        public const int TUBS_PRESSED = 3;
        public const int TUBS_FOCUSED = 4;
        public const int TUBS_DISABLED = 5;

        public const int TUTS_NORMAL = 1;
        public const int TUTS_HOT = 2;
        public const int TUTS_PRESSED = 3;
        public const int TUTS_FOCUSED = 4;
        public const int TUTS_DISABLED = 5;

        public const int TUVS_NORMAL = 1;
        public const int TUVS_HOT = 2;
        public const int TUVS_PRESSED = 3;
        public const int TUVS_FOCUSED = 4;
        public const int TUVS_DISABLED = 5;

        public const int TUVLS_NORMAL = 1;
        public const int TUVLS_HOT = 2;
        public const int TUVLS_PRESSED = 3;
        public const int TUVLS_FOCUSED = 4;
        public const int TUVLS_DISABLED = 5;

        public const int TUVRS_NORMAL = 1;
        public const int TUVRS_HOT = 2;
        public const int TUVRS_PRESSED = 3;
        public const int TUVRS_FOCUSED = 4;
        public const int TUVRS_DISABLED = 5;

        public const int TSS_NORMAL = 1;

        public const int TSVS_NORMAL = 1;


        //   "Tooltips" Parts & States


        public const int TTP_STANDARD = 1;
        public const int TTP_STANDARDTITLE = 2;
        public const int TTP_BALLOON = 3;
        public const int TTP_BALLOONTITLE = 4;
        public const int TTP_CLOSE = 5;

        public const int TTCS_NORMAL = 1;
        public const int TTCS_HOT = 2;
        public const int TTCS_PRESSED = 3;

        public const int TTSS_NORMAL = 1;
        public const int TTSS_LINK = 2;

        public const int TTBS_NORMAL = 1;
        public const int TTBS_LINK = 2;


        //   "TreeView" Parts & States


        public const int TVP_TREEITEM = 1;
        public const int TVP_GLYPH = 2;
        public const int TVP_BRANCH = 3;

        public const int TREIS_NORMAL = 1;
        public const int TREIS_HOT = 2;
        public const int TREIS_SELECTED = 3;
        public const int TREIS_DISABLED = 4;
        public const int TREIS_SELECTEDNOTFOCUS = 5;

        public const int GLPS_CLOSED = 1;
        public const int GLPS_OPENED = 2;


        //   "Spin" Parts & States


        public const int SPNP_UP = 1;
        public const int SPNP_DOWN = 2;
        public const int SPNP_UPHORZ = 3;
        public const int SPNP_DOWNHORZ = 4;

        public const int UPS_NORMAL = 1;
        public const int UPS_HOT = 2;
        public const int UPS_PRESSED = 3;
        public const int UPS_DISABLED = 4;

        public const int DNS_NORMAL = 1;
        public const int DNS_HOT = 2;
        public const int DNS_PRESSED = 3;
        public const int DNS_DISABLED = 4;

        public const int UPHZS_NORMAL = 1;
        public const int UPHZS_HOT = 2;
        public const int UPHZS_PRESSED = 3;
        public const int UPHZS_DISABLED = 4;

        public const int DNHZS_NORMAL = 1;
        public const int DNHZS_HOT = 2;
        public const int DNHZS_PRESSED = 3;
        public const int DNHZS_DISABLED = 4;


        //   "Page" Parts & States


        public const int PGRP_UP = 1;
        public const int PGRP_DOWN = 2;
        public const int PGRP_UPHORZ = 3;
        public const int PGRP_DOWNHORZ = 4;

        //--- Pager uses same states as Spin ---		

        //   "Scrollbar" Parts & States


        public const int SBP_ARROWBTN = 1;
        public const int SBP_THUMBBTNHORZ = 2;
        public const int SBP_THUMBBTNVERT = 3;
        public const int SBP_LOWERTRACKHORZ = 4;
        public const int SBP_UPPERTRACKHORZ = 5;
        public const int SBP_LOWERTRACKVERT = 6;
        public const int SBP_UPPERTRACKVERT = 7;
        public const int SBP_GRIPPERHORZ = 8;
        public const int SBP_GRIPPERVERT = 9;
        public const int SBP_SIZEBOX = 10;

        public const int ABS_UPNORMAL = 1;
        public const int ABS_UPHOT = 2;
        public const int ABS_UPPRESSED = 3;
        public const int ABS_UPDISABLED = 4;
        public const int ABS_DOWNNORMAL = 5;
        public const int ABS_DOWNHOT = 6;
        public const int ABS_DOWNPRESSED = 7;
        public const int ABS_DOWNDISABLED = 8;
        public const int ABS_LEFTNORMAL = 9;
        public const int ABS_LEFTHOT = 10;
        public const int ABS_LEFTPRESSED = 11;
        public const int ABS_LEFTDISABLED = 12;
        public const int ABS_RIGHTNORMAL = 13;
        public const int ABS_RIGHTHOT = 14;
        public const int ABS_RIGHTPRESSED = 15;
        public const int ABS_RIGHTDISABLED = 16;

        public const int SCRBS_NORMAL = 1;
        public const int SCRBS_HOT = 2;
        public const int SCRBS_PRESSED = 3;
        public const int SCRBS_DISABLED = 4;

        public const int SZB_RIGHTALIGN = 1;
        public const int SZB_LEFTALIGN = 2;

        //   "Edit" Parts & States


        public const int EP_EDITTEXT = 1;
        public const int EP_CARET = 2;

        public const int ETS_NORMAL = 1;
        public const int ETS_HOT = 2;
        public const int ETS_SELECTED = 3;
        public const int ETS_DISABLED = 4;
        public const int ETS_FOCUSED = 5;
        public const int ETS_READONLY = 6;
        public const int ETS_ASSIST = 7;

        //   "ComboBox" Parts & States


        public const int CP_DROPDOWNBUTTON = 1;

        public const int CBXS_NORMAL = 1;
        public const int CBXS_HOT = 2;
        public const int CBXS_PRESSED = 3;
        public const int CBXS_DISABLED = 4;

        //   "Taskbar Clock" Parts & States


        public const int CLP_TIME = 1;

        public const int CLS_NORMAL = 1;

        //   "Tray Notify" Parts & States


        public const int TNP_BACKGROUND = 1;
        public const int TNP_ANIMBACKGROUND = 2;

        //   "TaskBar" Parts & States


        public const int TBP_BACKGROUNDBOTTOM = 1;
        public const int TBP_BACKGROUNDRIGHT = 2;
        public const int TBP_BACKGROUNDTOP = 3;
        public const int TBP_BACKGROUNDLEFT = 4;
        public const int TBP_SIZINGBARBOTTOM = 5;
        public const int TBP_SIZINGBARRIGHT = 6;
        public const int TBP_SIZINGBARTOP = 7;
        public const int TBP_SIZINGBARLEFT = 8;

        //   "TaskBand" Parts & States


        public const int TDP_GROUPCOUNT = 1;
        public const int TDP_FLASHBUTTON = 2;
        public const int TDP_FLASHBUTTONGROUPMENU = 3;

        //   "StartPanel" Parts & States


        public const int SPP_USERPANE = 1;
        public const int SPP_MOREPROGRAMS = 2;
        public const int SPP_MOREPROGRAMSARROW = 3;
        public const int SPP_PROGLIST = 4;
        public const int SPP_PROGLISTSEPARATOR = 5;
        public const int SPP_PLACESLIST = 6;
        public const int SPP_PLACESLISTSEPARATOR = 7;
        public const int SPP_LOGOFF = 8;
        public const int SPP_LOGOFFBUTTONS = 9;
        public const int SPP_USERPICTURE = 10;
        public const int SPP_PREVIEW = 11;

        public const int SPS_NORMAL = 1;
        public const int SPS_HOT = 2;
        public const int SPS_PRESSED = 3;

        public const int SPLS_NORMAL = 1;
        public const int SPLS_HOT = 2;
        public const int SPLS_PRESSED = 3;

        //   "ExplorerBar" Parts & States


        public const int EBP_HEADERBACKGROUND = 1;
        public const int EBP_HEADERCLOSE = 2;
        public const int EBP_HEADERPIN = 3;
        public const int EBP_IEBARMENU = 4;
        public const int EBP_NORMALGROUPBACKGROUND = 5;
        public const int EBP_NORMALGROUPCOLLAPSE = 6;
        public const int EBP_NORMALGROUPEXPAND = 7;
        public const int EBP_NORMALGROUPHEAD = 8;
        public const int EBP_SPECIALGROUPBACKGROUND = 9;
        public const int EBP_SPECIALGROUPCOLLAPSE = 10;
        public const int EBP_SPECIALGROUPEXPAND = 11;
        public const int EBP_SPECIALGROUPHEAD = 12;

        public const int EBHC_NORMAL = 1;
        public const int EBHC_HOT = 2;
        public const int EBHC_PRESSED = 3;

        public const int EBHP_NORMAL = 1;
        public const int EBHP_HOT = 2;
        public const int EBHP_PRESSED = 3;
        public const int EBHP_SELECTEDNORMAL = 4;
        public const int EBHP_SELECTEDHOT = 5;
        public const int EBHP_SELECTEDPRESSED = 6;

        public const int EBM_NORMAL = 1;
        public const int EBM_HOT = 2;
        public const int EBM_PRESSED = 3;

        public const int EBNGC_NORMAL = 1;
        public const int EBNGC_HOT = 2;
        public const int EBNGC_PRESSED = 3;

        public const int EBNGE_NORMAL = 1;
        public const int EBNGE_HOT = 2;
        public const int EBNGE_PRESSED = 3;

        public const int EBSGC_NORMAL = 1;
        public const int EBSGC_HOT = 2;
        public const int EBSGC_PRESSED = 3;

        public const int EBSGE_NORMAL = 1;
        public const int EBSGE_HOT = 2;
        public const int EBSGE_PRESSED = 3;

        //   "TaskBand" Parts & States


        public const int MDP_NEWAPPBUTTON = 1;
        public const int MDP_SEPERATOR = 2;

        public const int MDS_NORMAL = 1;
        public const int MDS_HOT = 2;
        public const int MDS_PRESSED = 3;
        public const int MDS_DISABLED = 4;
        public const int MDS_CHECKED = 5;
        public const int MDS_HOTCHECKED = 6;

        //---------------------------------------------------------------------------
        #endregion

        public enum THEMESIZE
        {
            TS_MIN,
            TS_TRUE,
            TS_DRAW
        }
        public enum PROPERTYORIGIN
        {
            PO_STATE,           // property was found in the state section
            PO_PART,            // property was found in the part section
            PO_CLASS,           // property was found in the class section
            PO_GLOBAL,          // property was found in [globals] section
            PO_NOTFOUND         // property was not found
        }

        public const string SZ_THDOCPROP_DISPLAYNAME = "DisplayName";
        public const string SZ_THDOCPROP_CANONICALNAME = "ThemeName";
        public const string SZ_THDOCPROP_TOOLTIP = "ToolTip";
        public const string SZ_THDOCPROP_AUTHOR = "author";

        public const int STAP_ALLOW_NONCLIENT = (1 << 0);
        public const int STAP_ALLOW_CONTROLS = (1 << 1);
        public const int STAP_ALLOW_WEBCONTENT = (1 << 2);

        public const int ETDT_DISABLE = 0x00000001;
        public const int ETDT_ENABLE = 0x00000002;
        public const int ETDT_USETABTEXTURE = 0x00000004;
        public const int ETDT_ENABLETAB = (ETDT_ENABLE | ETDT_USETABTEXTURE);


        public const int DTT_GRAYED = 0x1;         // draw a grayed-out string  

        public const int HTTB_BACKGROUNDSEG = 0x0000;
        public const int HTTB_FIXEDBORDER = 0x0002;  // Return code may be either HTCLIENT or HTBORDER. 
        public const int HTTB_CAPTION = 0x0004;
        public const int HTTB_RESIZINGBORDER_LEFT = 0x0010;  // Hit test left resizing border, 
        public const int HTTB_RESIZINGBORDER_TOP = 0x0020;  // Hit test top resizing border
        public const int HTTB_RESIZINGBORDER_RIGHT = 0x0040;  // Hit test right resizing border
        public const int HTTB_RESIZINGBORDER_BOTTOM = 0x0080;  // Hit test bottom resizing border
        public const int HTTB_RESIZINGBORDER = (HTTB_RESIZINGBORDER_LEFT | HTTB_RESIZINGBORDER_TOP | HTTB_RESIZINGBORDER_RIGHT | HTTB_RESIZINGBORDER_BOTTOM);
        public const int HTTB_SIZINGTEMPLATE = 0x0100;
        public const int HTTB_SYSTEMSIZINGMARGINS = 0x0200;

        public const int DTBG_CLIPRECT = 0x00000001;   // rcClip has been specified
        public const int DTBG_DRAWSOLID = 0x00000002;   // draw transparent/alpha images as solid
        public const int DTBG_OMITBORDER = 0x00000004;   // don't draw border of part
        public const int DTBG_OMITCONTENT = 0x00000008;   // don't draw content area of part
        public const int DTBG_COMPUTINGREGION = 0x00000010;   // TRUE if calling to compute region
        public const int DTBG_MIRRORDC = 0x00000020;   // assume the hdc is mirrorred and

        public struct DTBGOPTS
        {
            public int dwSize;           // size of the struct
            public int dwFlags;          // which options have been specified
            public Win32.API.RECT rcClip;            // clipping rectangle
        }
        public struct INTLIST
        {
            public int iValueCount;      // number of values in iValues
            public int iValue1;
            public int iValue2;
            public int iValue3;
            public int iValue4;
            public int iValue5;
            public int iValue6;
            public int iValue7;
            public int iValue8;
            public int iValue9;
            public int iValue10;
        }

        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern IntPtr OpenThemeData(IntPtr hwnd, string pszClassList);

        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int CloseThemeData(IntPtr hTheme);

        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int DrawThemeBackground(IntPtr hTheme, IntPtr hdc,
            int iPartId, int iStateId, ref Win32.API.RECT pRect, ref Win32.API.RECT pClipRect);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int DrawThemeText(IntPtr hTheme, IntPtr hdc, int iPartId,
            int iStateId, string pszText, int iCharCount, int dwTextFlags,
            int dwTextFlags2, ref Win32.API.RECT pRect);

        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeBackgroundContentRect(IntPtr hTheme, IntPtr hdc,
            int iPartId, int iStateId, ref Win32.API.RECT pBoundingRect,
            ref Win32.API.RECT pContentRect);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeBackgroundExtent(IntPtr hTheme, IntPtr hdc,
            int iPartId, int iStateId, ref Win32.API.RECT pContentRect,
            ref Win32.API.RECT pExtentRect);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemePartSize(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId,
            ref Win32.API.RECT prc, THEMESIZE eSize, ref Win32.API.SIZE psz);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeTextExtent(IntPtr hTheme, IntPtr hdc,
            int iPartId, int iStateId, string pszText, int iCharCount,
            int dwTextFlags, ref Win32.API.RECT pBoundingRect,
            ref Win32.API.RECT pExtentRect);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeTextMetrics(IntPtr hTheme, IntPtr hdc,
            int iPartId, int iStateId, ref Win32.API.TEXTMETRIC ptm);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeBackgroundRegion(IntPtr hTheme, IntPtr hdc,
            int iPartId, int iStateId, ref Win32.API.RECT pRect, ref IntPtr pRegion);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int HitTestThemeBackground(IntPtr hTheme, IntPtr hdc, int iPartId,
            int iStateId, int dwOptions, ref Win32.API.RECT pRect, IntPtr hrgn,
            Win32.API.POINT ptTest, ref int pwHitTestCode);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int DrawThemeEdge(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId,
            ref Win32.API.RECT pDestRect, int uEdge, int uFlags, ref Win32.API.RECT pContentRect);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int DrawThemeIcon(IntPtr hTheme, IntPtr hdc, int iPartId,
            int iStateId, ref Win32.API.RECT pRect, IntPtr himl, int iImageIndex);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int IsThemePartDefined(IntPtr hTheme, int iPartId,
            int iStateId);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int IsThemeBackgroundPartiallyTransparent(IntPtr hTheme,
            int iPartId, int iStateId);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeColor(IntPtr hTheme, int iPartId,
            int iStateId, int iPropId, ref Win32.API.COLORREF pColor);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeMetric(IntPtr hTheme, IntPtr hdc, int iPartId,
            int iStateId, int iPropId, ref int piVal);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeString(IntPtr hTheme, int iPartId,
            int iStateId, int iPropId, StringBuilder pszBuff, int cchMaxBuffChars);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeBool(IntPtr hTheme, int iPartId,
            int iStateId, int iPropId, ref int pfVal);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeInt(IntPtr hTheme, int iPartId,
            int iStateId, int iPropId, ref int piVal);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeEnumValue(IntPtr hTheme, int iPartId,
            int iStateId, int iPropId, ref int piVal);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemePosition(IntPtr hTheme, int iPartId,
            int iStateId, int iPropId, ref Win32.API.POINT pPoint);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeFont(IntPtr hTheme, IntPtr hdc, int iPartId,
            int iStateId, int iPropId, ref Win32.API.LOGFONT pFont);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeRect(IntPtr hTheme, int iPartId,
            int iStateId, int iPropId, ref Win32.API.RECT pRect);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeMargins(IntPtr hTheme, IntPtr hdc, int iPartId,
            int iStateId, int iPropId, ref Win32.API.RECT prc, ref MARGINS pMargins);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeIntList(IntPtr hTheme, int iPartId,
            int iStateId, int iPropId, ref INTLIST pIntList);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemePropertyOrigin(IntPtr hTheme, int iPartId,
            int iStateId, int iPropId, ref PROPERTYORIGIN pOrigin);

        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int SetWindowTheme(IntPtr hwnd, string pszSubAppName,
            string pszSubIdList);

        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeFilename(IntPtr hTheme, int iPartId,
            int iStateId, int iPropId, StringBuilder pszThemeFileName, int cchMaxBuffChars);

        [DllImport("uxtheme.dll")]
        public static extern Win32.API.COLORREF GetThemeSysColor(IntPtr hTheme, int iColorId);

        [DllImport("uxtheme.dll")]
        public static extern IntPtr GetThemeSysColorBrush(IntPtr hTheme, int iColorId);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeSysBool(IntPtr hTheme, int iBoolId);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeSysSize(IntPtr hTheme, int iSizeId);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeSysFont(IntPtr hTheme, int iFontId, ref Win32.API.LOGFONT plf);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeSysString(IntPtr hTheme, int iStringId,
            StringBuilder pszStringBuff, int cchMaxStringChars);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeSysInt(IntPtr hTheme, int iIntId, ref int piValue);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int IsThemeActive();
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int IsAppThemed();
        [DllImport("uxtheme.dll")]
        public static extern IntPtr GetWindowTheme(IntPtr hwnd);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int EnableThemeDialogTexture(IntPtr hwnd, int dwFlags);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int IsThemeDialogTextureEnabled(IntPtr hwnd);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeAppProperties();
        [DllImport("uxtheme.dll")]
        public static extern void SetThemeAppProperties(int dwFlags);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetCurrentThemeName(
            StringBuilder pszThemeFileName, int cchMaxNameChars,
            StringBuilder pszColorBuff, int cchMaxColorChars,
            StringBuilder pszSizeBuff, int cchMaxSizeChars);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int GetThemeDocumentationProperty(string pszThemeName,
            string pszPropertyName, StringBuilder pszValueBuff, int cchMaxValChars);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int DrawThemeParentBackground(IntPtr hwnd, IntPtr hdc, ref Win32.API.RECT prc);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int EnableTheming(int fEnable);
        [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
        public static extern int DrawThemeBackgroundEx(IntPtr hTheme, IntPtr hdc,
            int iPartId, int iStateId, ref Win32.API.RECT pRect, ref DTBGOPTS pOptions);

        #endregion

        #region MSI
        [DllImport("msi")]
        public static extern IntPtr MsiGetActiveDatabase(
            IntPtr prod
            );
        public delegate int InstallUIHandler(IntPtr context, int messageType, string message);
        [DllImport("msi")]
        public static extern InstallUIHandler MsiSetExternalUI(
            InstallUIHandler proc,
            int messages,
            IntPtr context
            );
        [DllImport("msi")]
        public static extern int MsiProcessMessage(
            IntPtr hInstall,
            int eMessageType,
            IntPtr hRecord
            );
        [DllImport("msi")]
        public static extern int MsiSequence(
            IntPtr product,
            string table,
            int reserved
            );
        [DllImport("msi")]
        public static extern int MsiGetFileSignatureInformation(
            string szSignedObjectPath,
            int dwFlags,
            ref IntPtr ppcCertContext,
            IntPtr pbHashData,
            ref int pcbHashData
            );
        [DllImport("msi")]
        public static extern int MsiCreateTransformSummaryInfo(
            IntPtr database,
            IntPtr databaseRef,
            string xfrmfile,
            int errcond,
            int validation
            );
        [DllImport("msi")]
        public static extern int MsiDeterminePatchSequence(string productCode, string userSid, int context, int cPatchInfo, ref MSIPATCHSEQUENCE[] patches);
        [DllImport("msi")]
        public static extern int MsiApplyMultiplePatches(string patchPackages, string prodCode, string propertyList);
        [DllImport("msi")]
        public static extern int MsiEnumPatchesEx(string prodCode, string userSid, int context, int filter, int index,
            ref string patchCode, ref string targetProdCode, ref int targetContext, ref string targetUserSid, ref int pcchTargetUserSid);
        [DllImport("msi")]
        public static extern int MsiGetPatchInfoEx(string patchCode, string productCode, string userId, int context, string property, ref string val, ref int cchVal);
        [DllImport("msi")]
        public static extern int MsiEnumProductsEx(string productCode, string userSid, int context, int index, ref string installedProdCode, ref int installContext, ref string sid, ref int cchSid);
        [DllImport("msi")]
        public static extern int MsiGetProductInfoEx(string productCode, string userSid, int context, string property, ref string value, ref int cchValue);
        [DllImport("msi")]
        public static extern int MsiQueryFeatureStateEx(string productCode, string userSid, int context, string feature, ref int installState);
        [DllImport("msi")]
        public static extern int MsiQueryComponentState(string productCode, string userSid, int context, string component, ref int dwState);
        [DllImport("msi")]
        public static extern int MsiExtractPatchXMLData(string patchPath, int reserved, ref string xmlData, ref int cchXMLdata);
        [DllImport("msi")]
        public static extern int MsiDetermineApplicablePatches(string prodPackagePath, int cPatchInfo, ref MSIPATCHSEQUENCE[] patchInfo);
        [DllImport("msi")]
        public static extern int MsiSourceListEnumSources(string prodOrPatchCode, string userSid, int context, int options, int index, ref string source, ref int cchSource);
        [DllImport("msi")]
        public static extern int MsiSourceListAddSourceEx(string prodOrPatchCode, string userSid, int context, int options, string source, int index);
        [DllImport("msi")]
        public static extern int MsiSourceListClearSource(string prodOrPatchCode, string userSid, int context, int options, string source);
        [DllImport("msi")]
        public static extern int MsiSourceListClearAllEx(string prodOrPatchCode, string userSid, int context, int options);
        [DllImport("msi")]
        public static extern int MsiSourceListForceResolutionEx(string prodOrPatchCode, string userSid, int context, int options);
        [DllImport("msi")]
        public static extern int MsiSourceListGetInfo(string prodOrPatchCode, string userSid, int context, int options, string property, ref string val, ref int cchVal);
        [DllImport("msi")]
        public static extern int MsiSourceListSetInfo(string prodOrPatchCode, string userSid, int context, int options, string property, string val);
        [DllImport("msi")]
        public static extern int MsiSourceListEnumMediaDisks(string prodOrPatchCode, string userSid, int context, int options, int index, ref int diskId, ref string volLabel, ref int cchVolLabel, ref string diskPrompt, ref int cchDiskPrompt);
        [DllImport("msi")]
        public static extern int MsiSourceListAddMediaDisk(string prodOrPatchCode, string userSid, int context, int options, int diskId, string volLabel, string diskPrompt);
        [DllImport("msi")]
        public static extern int MsiSourceListClearMediaDisk(string prodOrPatchCode, string userSid, int context, int options, int diskId);
        [DllImport("msi")]
        public static extern int MsiRemovePatches(string patchList, string productCode, int installType, string propertyList);
        [DllImport("msi", CharSet = CharSet.Auto)]               // UI level             // handle of owner window
        public static extern int MsiSetInternalUI(int dwUILevel, ref IntPtr winhandle);
        [DllImport("msi")]
        public static extern int MsiEnableUIPreview(IntPtr msihandle,
            ref IntPtr preview_handle);       // returned handle for UI preview capability
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiPreviewDialog(IntPtr preview_handle,
            string DialogName);      // dialog to display, Dialog table key
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiPreviewBillboard(IntPtr preview_handle,
            string ControlName,      // name of control that accepts billboards
            string Billboard);       // name of billboard to display
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiEnableLog(
            int LogMode,           // bit flags designating operations to report
            string LogFile,           // log file, or NULL to disable logging
            int LogAttributes);
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiFormatRecord(
            IntPtr hInstall,
            IntPtr hRecord,
            string szResultBuf,
            ref int pcchResultBuf
            );
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiOpenPackage(string path, ref IntPtr product);
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiOpenPackageEx(string path, int options, ref IntPtr product);
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiOpenProduct(string product, ref IntPtr productHandle);
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiDoAction(IntPtr hInst, string actioun);
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiGetFileHash(string path, int options, ref MSIFILEHASHINFO info);
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiQueryProductState(
            string Product);
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiGetProductInfo(
            string Product,      // product code
            string Attribute,    // attribute name, case-sensitive
            StringBuilder Buffer,     // returned value, NULL if not desired ref?
            ref int length);       // in/out buffer character count
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiInstallProduct(
            string PackagePath,    // location of package to install
            string CommandLine);   // command line <property settings>
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiConfigureProduct(
            string Product,        // product code
            int iInstallLevel,    // how much of the product to install
            int eInstallState);   // local/source/default/absent/lock/uncache
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiReinstallProduct(
            string Product,        // product code
            int ReinstallMode); // one or more REINSTALLMODE modes
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiGetProductCode(
            string Component,   // component Id registered for this product
            StringBuilder Buffer39);      // returned string GUID, sized for 39 characters
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiGetUserInfo(
            string Product,        // product code, string GUID
            StringBuilder UserNameBuffer,    // return user name           
            ref int UserNameBufferLength, // in/out buffer character count
            StringBuilder OrgNameBuffer,     // return company name           
            ref int OrgNameBufferLength,  // in/out buffer character count
            StringBuilder SerialBuffer,      // return product serial number
            ref int SerialBufferLength);  // in/out buffer character count
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiGetSourcePath(
            IntPtr hInstall, string folder, StringBuilder outBuf, ref int outBufLength);
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiCollectUserInfo(
            string Product);     // product code, string GUID
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiOpenDatabase(string dbpath,
            int persist,
            ref IntPtr msihandle);
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiDatabaseImport(IntPtr msihandle,
            string FolderPath,     // folder containing archive files
            string FileName);      // table archive file to be imported
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiDatabaseExport(IntPtr msihandle,
            string TableName,      // name of table in database <case-sensitive>
            string FolderPath,     // folder containing archive files
            string FileName);      // name of exported table archive file	
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiDatabaseMerge(IntPtr msihandle,
            IntPtr msihandle2,    // database to be merged into hDatabase
            string TableName);      // name of non-persistent table to receive errors
        [DllImport("msi")]
        public static extern int MsiDatabaseCommit(IntPtr msihandle);
        [DllImport("msi")]
        public static extern int MsiDatabaseGenerateTransform(IntPtr database, IntPtr databaseRef, string xfrmfile, int resv1, int resv2);
        [DllImport("msi")]
        public static extern int MsiDatabaseApplyTransform(IntPtr database, string xfrmfile, int conditions);
        [DllImport("msi")]
        public static extern int MsiGetDatabaseState(IntPtr msihandle);
        [DllImport("msi")]
        public static extern int MsiDatabaseOpenView(IntPtr msihandle, string query, ref IntPtr viewhandle);
        [DllImport("msi")]
        public static extern int MsiViewExecute(IntPtr viewhandle, IntPtr recordhandle);
        [DllImport("msi")]
        public static extern int MsiViewFetch(IntPtr viewhandle, ref IntPtr recordhandle);
        [DllImport("msi")]
        public static extern int MsiViewModify(IntPtr viewhandle,
            int eModifyMode,         // modify action to perform
            IntPtr recordhandle);            // record obtained from fetch, or new record
        [DllImport("msi")]
        public static extern int MsiViewGetColumnInfo(IntPtr viewhandle,
            int eColumnInfo,        // retrieve columns names or definitions
            ref IntPtr recordhandle);          // returned data record containing all names or definitions
        [DllImport("msi")]
        public static extern int MsiCloseHandle(IntPtr handle);
        [DllImport("msi")]
        public static extern int MsiViewClose(IntPtr viewhandle);
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiDatabaseGetPrimaryKeys(IntPtr msihandle,
            string TableName,       // the name of a specific table <case-sensitive>
            ref IntPtr recordhandle);         // returned record if ERROR_SUCCESS
        [DllImport("msi")]
        public static extern IntPtr MsiCreateRecord(
            int Params);                   // the number of data fields
        [DllImport("msi")]
        public static extern bool MsiRecordIsNull(IntPtr recordhandle,
            int Field);
        [DllImport("msi")]
        public static extern int MsiRecordDataSize(IntPtr recordhandle,
            int Field);
        [DllImport("msi")]
        public static extern int MsiRecordSetInteger(IntPtr recordhandle,
            int Field,
            int Value);
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiRecordSetString(IntPtr recordhandle,
            int Field,
            string Value);
        [DllImport("msi")]
        public static extern int MsiRecordGetInteger(IntPtr recordhandle,
            int Field);
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiRecordGetString(IntPtr recordhandle,
            int Field,
            StringBuilder ValueBuffer,       // buffer for returned value
            ref int length);            // in/out buffer character count
        [DllImport("msi")]
        public static extern int MsiRecordGetFieldCount(IntPtr recordhandle);
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiRecordSetStream(IntPtr recordhandle,
            int Field,
            string FilePath);   // path to file containing stream data
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiRecordReadStream(IntPtr recordhandle,
            int Field,
            byte[] DataBuffer,     // buffer to receive bytes from stream
            ref int len);   // in/out buffer byte count
        [DllImport("msi")]
        public static extern int MsiRecordClearData(IntPtr recordhandle);
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiEnumProducts(
            int iProductIndex,    // 0-based index into registered products
            StringBuilder ProductBuffer);    // buffer of char count: 39 (size of string GUID)
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiEnumRelatedProducts(
            string UpgradeCode,    // upgrade code of products to enumerate
            int dwReserved,       // reserved, must be 0
            int iProductIndex,    // 0-based index into registered products
            StringBuilder ProductBuffer);    // buffer of char count: 39 (size of string GUID)
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiEnumFeatures(
            string szProduct,
            int iFeatureIndex,  // 0-based index into published features
            StringBuilder FeatureBuffer,   // feature name buffer,   size=MAX_FEATURE_CHARS+1
            StringBuilder ParentBuffer);   // parent feature buffer, size=MAX_FEATURE_CHARS+1
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiEnumClients(
            string szComponent,
            int iProductIndex,    // 0-based index into client products
            StringBuilder ProductBuffer);    // buffer of char count: 39 (size of string GUID)
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiEnumComponentQualifiers(
            string szComponent,         // generic component ID that is qualified
            int iIndex,	           // 0-based index into qualifiers
            StringBuilder QualifierBuffer,      // qualifier buffer
            ref int QualifierBufferLength,   // in/out qualifier buffer character count
            StringBuilder ApplicationDataBuffer,    // description buffer
            ref int ApplicationDataBufferLength); // in/out description buffer character count
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiGetSummaryInformation(IntPtr msihandle, // 0 if not open
            string szDatabasePath,  // path to database, 0 if database handle supplied
            int uiUpdateCount,    // maximium number of updated values, 0 to open read-only
            ref IntPtr SummaryInfo); // returned handle to summary information data
        [DllImport("msi")]
        public static extern int MsiSummaryInfoGetPropertyCount(IntPtr SummaryInfo,
            ref int PropertyCount); // pointer to location to return total property count
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiSummaryInfoSetProperty(IntPtr SummaryInfo,
            int uiProperty,     // property ID, one of allowed values for summary information
            int uiDataType,     // VT_I4, VT_LPSTR, VT_FILETIME, or VT_EMPTY
            /*INT*/    int iValue,         // integer value, used only if integer property
            ref	Com.FILETIME pftValue,      // pointer to filetime value, used only if datetime property
            string Value);       // text value, used only if string property
        [DllImport("msi", CharSet = CharSet.Auto)]
        public static extern int MsiSummaryInfoGetProperty(IntPtr SummaryInfo,
            int uiProperty,     // property ID, one of allowed values for summary information
            ref int uiDataType,   // returned type: VT_I4, VT_LPSTR, VT_FILETIME, VT_EMPTY
            /*INT*/     ref int Value,      // returned integer property data
            ref	Com.FILETIME pftValue,      // returned datetime property data
            StringBuilder ValueBuffer,     // buffer to return string property data
            ref int ValueBufferLength); // in/out buffer character count
        [DllImport("msi")]
        public static extern int MsiSummaryInfoPersist(IntPtr SummaryInfo);

        [StructLayout(LayoutKind.Sequential)]
        public struct MSIPATCHSEQUENCE
        {
            public string patchData;
            public int patchDataType;
            public int order;
            public int status;
        }

        public const int INSTALLMESSAGE_FATALEXIT = 0x00000000; // premature termination, possibly fatal OOM
        public const int INSTALLMESSAGE_ERROR = 0x01000000; // formatted error message
        public const int INSTALLMESSAGE_WARNING = 0x02000000; // formatted warning message
        public const int INSTALLMESSAGE_USER = 0x03000000; // user request message
        public const int INSTALLMESSAGE_INFO = 0x04000000; // informative message for log
        public const int INSTALLMESSAGE_FILESINUSE = 0x05000000; // list of files in use that need to be replaced
        public const int INSTALLMESSAGE_RESOLVESOURCE = 0x06000000; // request to determine a valid source location
        public const int INSTALLMESSAGE_OUTOFDISKSPACE = 0x07000000; // insufficient disk space message
        public const int INSTALLMESSAGE_ACTIONSTART = 0x08000000; // start of action: action name & description
        public const int INSTALLMESSAGE_ACTIONDATA = 0x09000000; // formatted data associated with individual action item
        public const int INSTALLMESSAGE_PROGRESS = 0x0A000000; // progress gauge info: units so far, total
        public const int INSTALLMESSAGE_COMMONDATA = 0x0B000000; // product info for dialog: language Id, dialog caption
        public const int INSTALLMESSAGE_INITIALIZE = 0x0C000000; // sent prior to UI initialization, no string data
        public const int INSTALLMESSAGE_TERMINATE = 0x0D000000; // sent after UI termination, no string data
        public const int INSTALLMESSAGE_SHOWDIALOG = 0x0E000000; // sent prior to display or authored dialog or wizard
        public const int INSTALLUILEVEL_NOCHANGE = 0;    // UI level is unchanged
        public const int INSTALLUILEVEL_DEFAULT = 1;    // default UI is used
        public const int INSTALLUILEVEL_NONE = 2;    // completely silent installation
        public const int INSTALLUILEVEL_BASIC = 3;    // simple progress and error handling
        public const int INSTALLUILEVEL_REDUCED = 4;    // authored UI, wizard dialogs suppressed
        public const int INSTALLUILEVEL_FULL = 5;    // authored UI with wizards, progress, errors
        public const int INSTALLUILEVEL_ENDDIALOG = 0x80; // display success/failure dialog at end of install
        public const int INSTALLUILEVEL_PROGRESSONLY = 0x40; // display only progress dialog
        public const int INSTALLSTATE_NOTUSED = -7;  // component disabled
        public const int INSTALLSTATE_BADCONFIG = -6; // configuration data corrupt
        public const int INSTALLSTATE_INCOMPLETE = -5; // installation suspended or in progress
        public const int INSTALLSTATE_SOURCEABSENT = -4;  // run from source, source is unavailable
        public const int INSTALLSTATE_MOREDATA = -3;  // return buffer overflow
        public const int INSTALLSTATE_INVALIDARG = -2;  // invalid function argument
        public const int INSTALLSTATE_UNKNOWN = -1;  // unrecognized product or feature
        public const int INSTALLSTATE_BROKEN = 0;  // broken
        public const int INSTALLSTATE_ADVERTISED = 1;  // advertised feature
        public const int INSTALLSTATE_REMOVED = 1;  // component being removed (action state, not settable)
        public const int INSTALLSTATE_ABSENT = 2;  // uninstalled (or action state absent but clients remain)
        public const int INSTALLSTATE_LOCAL = 3;  // installed on local drive
        public const int INSTALLSTATE_SOURCE = 4;  // run from source, CD or net
        public const int INSTALLSTATE_DEFAULT = 5;  // use default, local or source
        public const int USERINFOSTATE_MOREDATA = -3;  // return buffer overflow
        public const int USERINFOSTATE_INVALIDARG = -2;  // invalid function argument
        public const int USERINFOSTATE_UNKNOWN = -1;  // unrecognized product
        public const int USERINFOSTATE_ABSENT = 0;  // user info and PID not initialized
        public const int USERINFOSTATE_PRESENT = 1;  // user info and PID initialized
        public const int INSTALLLEVEL_DEFAULT = 0;      // install authored default
        public const int INSTALLLEVEL_MINIMUM = 1;      // install only required features
        public const int INSTALLLEVEL_MAXIMUM = 0xFFFF; // install all features
        public const int REINSTALLMODE_REPAIR = 0x00000001;  // Reserved bit - currently ignored
        public const int REINSTALLMODE_FILEMISSING = 0x00000002;  // Reinstall only if file is missing
        public const int REINSTALLMODE_FILEOLDERVERSION = 0x00000004;  // Reinstall if file is missing, or older version
        public const int REINSTALLMODE_FILEEQUALVERSION = 0x00000008;  // Reinstall if file is missing, or equal or older version
        public const int REINSTALLMODE_FILEEXACT = 0x00000010;  // Reinstall if file is missing, or not exact version
        public const int REINSTALLMODE_FILEVERIFY = 0x00000020;  // checksum executables, reinstall if missing or corrupt
        public const int REINSTALLMODE_FILEREPLACE = 0x00000040;  // Reinstall all files, regardless of version
        public const int REINSTALLMODE_MACHINEDATA = 0x00000080;  // insure required machine reg entries
        public const int REINSTALLMODE_USERDATA = 0x00000100;  // insure required user reg entries
        public const int REINSTALLMODE_SHORTCUT = 0x00000200;  // validate shortcuts items
        public const int REINSTALLMODE_PACKAGE = 0x00000400;  // use re-cache source install package
        public const int INSTALLLOGMODE_FATALEXIT = (1 << (0x00 >> 24));
        public const int INSTALLLOGMODE_ERROR = (1 << (0x01 >> 24));
        public const int INSTALLLOGMODE_WARNING = (1 << (0x02 >> 24));
        public const int INSTALLLOGMODE_USER = (1 << (0x03 >> 24));
        public const int INSTALLLOGMODE_INFO = (1 << (0x04 >> 24));
        public const int INSTALLLOGMODE_RESOLVESOURCE = (1 << (0x06 >> 24));
        public const int INSTALLLOGMODE_OUTOFDISKSPACE = (1 << (0x07 >> 24));
        public const int INSTALLLOGMODE_ACTIONSTART = (1 << (0x08 >> 24));
        public const int INSTALLLOGMODE_ACTIONDATA = (1 << (0x09 >> 24));
        public const int INSTALLLOGMODE_COMMONDATA = (1 << (0x0B >> 24));
        public const int INSTALLLOGMODE_PROPERTYDUMP = (1 << (0x0A >> 24)); // log only
        public const int INSTALLLOGMODE_VERBOSE = (1 << (0x0C >> 24)); // log only
        public const int INSTALLLOGMODE_PROGRESS = (1 << (0x0A >> 24)); // external handler only
        public const int INSTALLLOGMODE_INITIALIZE = (1 << (0x0C >> 24)); // external handler only
        public const int INSTALLLOGMODE_TERMINATE = (1 << (0x0D >> 24)); // external handler only
        public const int INSTALLLOGMODE_SHOWDIALOG = (1 << (0x0E >> 24)); // external handler only
        public const int INSTALLLOGATTRIBUTES_APPEND = (1 << 0);
        public const int INSTALLLOGATTRIBUTES_FLUSHEACHLINE = (1 << 1);
        public const int INSTALLFEATUREATTRIBUTE_FAVORLOCAL = 1 << 0;
        public const int INSTALLFEATUREATTRIBUTE_FAVORSOURCE = 1 << 1;
        public const int INSTALLFEATUREATTRIBUTE_FOLLOWPARENT = 1 << 2;
        public const int INSTALLFEATUREATTRIBUTE_FAVORADVERTISE = 1 << 3;
        public const int INSTALLFEATUREATTRIBUTE_DISALLOWADVERTISE = 1 << 4;
        public const int INSTALLFEATUREATTRIBUTE_NOUNSUPPORTEDADVERTISE = 1 << 5;
        public const int INSTALLMODE_NOSOURCERESOLUTION = -3;  // skip source resolution
        public const int INSTALLMODE_NODETECTION = -2;  // skip detection
        public const int INSTALLMODE_EXISTING = -1;  // provide, if available
        public const int INSTALLMODE_DEFAULT = 0;  // install, if absent
        public const int MAX_FEATURE_CHARS = 38;   // maximum chars in feature name (same as string GUID)
        public const string INSTALLPROPERTY_PACKAGENAME = "PackageName";
        public const string INSTALLPROPERTY_TRANSFORMS = "Transforms";
        public const string INSTALLPROPERTY_LANGUAGE = "Language";
        public const string INSTALLPROPERTY_PRODUCTNAME = "ProductName";
        public const string INSTALLPROPERTY_ASSIGNMENTTYPE = "AssignmentType";
        public const string INSTALLPROPERTY_PACKAGECODE = "PackageCode";
        public const string INSTALLPROPERTY_VERSION = "Version";
        public const string INSTALLPROPERTY_PRODUCTICON = "ProductIcon";
        public const string INSTALLPROPERTY_INSTALLEDPRODUCTNAME = "InstalledProductName";
        public const string INSTALLPROPERTY_VERSIONSTRING = "VersionString";
        public const string INSTALLPROPERTY_HELPLINK = "HelpLink";
        public const string INSTALLPROPERTY_HELPTELEPHONE = "HelpTelephone";
        public const string INSTALLPROPERTY_INSTALLLOCATION = "InstallLocation";
        public const string INSTALLPROPERTY_INSTALLSOURCE = "InstallSource";
        public const string INSTALLPROPERTY_INSTALLDATE = "InstallDate";
        public const string INSTALLPROPERTY_PUBLISHER = "Publisher";
        public const string INSTALLPROPERTY_LOCALPACKAGE = "LocalPackage";
        public const string INSTALLPROPERTY_URLINFOABOUT = "URLInfoAbout";
        public const string INSTALLPROPERTY_URLUPDATEINFO = "URLUpdateInfo";
        public const string INSTALLPROPERTY_VERSIONMINOR = "VersionMinor";
        public const string INSTALLPROPERTY_VERSIONMAJOR = "VersionMajor";
        public const int INSTALLTYPE_DEFAULT = 0;   // set to indicate default behavior
        public const int INSTALLTYPE_NETWORK_IMAGE = 1;   // set to indicate network install
        public const int MSIDBOPEN_READONLY = 0; // database open read-only, no persistent changes
        public const int MSIDBOPEN_TRANSACT = 1;  // database read/write in transaction mode
        public const int MSIDBOPEN_DIRECT = 2;  // database direct read/write without transaction
        public const int MSIDBOPEN_CREATE = 3;  // create new database, transact mode read/write
        public const int MSIDBOPEN_CREATEDIRECT = 4;  // create new database, direct mode read/writepublic const string MSIDBOPEN_READONLY     =  "0"; // database open read-only, no persistent changes
        public const int MSIDBSTATE_ERROR = -1;  // invalid database handle
        public const int MSIDBSTATE_READ = 0;  // database open read-only, no persistent changes
        public const int MSIDBSTATE_WRITE = 1;  // database readable and updatable
        public const int MSIMODIFY_SEEK = -1;  // reposition to current record primary key
        public const int MSIMODIFY_REFRESH = 0;  // refetch current record data
        public const int MSIMODIFY_INSERT = 1;  // insert new record, fails if matching key exists
        public const int MSIMODIFY_UPDATE = 2;  // update existing non-key data of fetched record
        public const int MSIMODIFY_ASSIGN = 3;  // insert record, replacing any existing record
        public const int MSIMODIFY_REPLACE = 4;  // update record, delete old if primary key edit
        public const int MSIMODIFY_MERGE = 5;  // fails if record with duplicate key not identical
        public const int MSIMODIFY_DELETE = 6;  // remove row referenced by this record from table
        public const int MSIMODIFY_INSERT_TEMPORARY = 7;  // insert a temporary record
        public const int MSIMODIFY_VALIDATE = 8;  // validate a fetched record
        public const int MSIMODIFY_VALIDATE_NEW = 9;  // validate a new record
        public const int MSIMODIFY_VALIDATE_FIELD = 10; // validate field(s) of an incomplete record
        public const int MSIMODIFY_VALIDATE_DELETE = 11; // validate before deleting record
        public const int MSICOLINFO_NAMES = 0;  // return column names
        public const int MSICOLINFO_TYPES = 1;  // return column definitions, datatype code followed by width
        public const int MSICONDITION_FALSE = 0;  // expression evaluates to False
        public const int MSICONDITION_TRUE = 1;  // expression evaluates to True
        public const int MSICONDITION_NONE = 2;  // no expression present
        public const int MSICONDITION_ERROR = 3;  // syntax error in expression
        public const int MSICOSTTREE_SELFONLY = 0;
        public const int MSICOSTTREE_CHILDREN = 1;
        public const int MSICOSTTREE_PARENTS = 2;
        public const int MSICOSTTREE_RESERVED = 3;	// Reserved for future use
        public const int PID_DICTIONARY = (0);// integer count + array of entries
        public const int PID_CODEPAGE = (0x1);// short integer
        public const int PID_TITLE = 2;  // string
        public const int PID_SUBJECT = 3;  // string
        public const int PID_AUTHOR = 4; // string
        public const int PID_KEYWORDS = 5;  // string
        public const int PID_COMMENTS = 6;  // string
        public const int PID_TEMPLATE = 7; // string
        public const int PID_LASTAUTHOR = 8;  // string
        public const int PID_REVNUMBER = 9;  // string
        public const int PID_EDITTIME = 10;  // datatime
        public const int PID_LASTPRINTED = 11;  // datetime
        public const int PID_CREATE_DTM = 12;  // datetime
        public const int PID_LASTSAVE_DTM = 13;  // datetime
        public const int PID_PAGECOUNT = 14;  // integer 
        public const int PID_WORDCOUNT = 15; // integer 
        public const int PID_CHARCOUNT = 16; // integer 
        public const int PID_THUMBNAIL = 17;  // clipboard format + metafile/bitmap (not supported)
        public const int PID_APPNAME = 18;  // string
        public const int PID_SECURITY = 19; // integer
        public const int PID_MSIVERSION = PID_PAGECOUNT;  // integer, Installer version number (major*100+minor)
        public const int PID_MSISOURCE = PID_WORDCOUNT;  // integer, type of file image, short/long, media/tree
        public const int PID_MSIRESTRICT = PID_CHARCOUNT;  // integer, transform restriction
        public const int MSITRANSFORM_ERROR_ADDEXISTINGROW = 0x1;
        public const int MSITRANSFORM_ERROR_DELMISSINGROW = 0x2;
        public const int MSITRANSFORM_ERROR_ADDEXISTINGTABLE = 0x4;
        public const int MSITRANSFORM_ERROR_DELMISSINGTABLE = 0x8;
        public const int MSITRANSFORM_ERROR_UPDATEMISSINGROW = 0x10;
        public const int MSITRANSFORM_ERROR_CHANGECODEPAGE = 0x20;
        public const int MSITRANSFORM_ERROR_VIEWTRANSFORM = 0x100;
        public const int MSITRANSFORM_VALIDATE_LANGUAGE = 0x00000001; // Default language must match base database. 
        public const int MSITRANSFORM_VALIDATE_PRODUCT = 0x00000002; // Product must match base database. 
        public const int MSITRANSFORM_VALIDATE_MAJORVERSION = 0x00000008; // Check major version only. 
        public const int MSITRANSFORM_VALIDATE_MINORVERSION = 0x00000010; // Check major and minor versions only. 
        public const int MSITRANSFORM_VALIDATE_UPDATEVERSION = 0x00000020; // Check major, minor, and update versions. 
        public const int MSITRANSFORM_VALIDATE_NEWLESSBASEVERSION = 0x00000040; // Installed version < base version. 
        public const int MSITRANSFORM_VALIDATE_NEWLESSEQUALBASEVERSION = 0x00000080; // Installed version <= base version. 
        public const int MSITRANSFORM_VALIDATE_NEWEQUALBASEVERSION = 0x00000100; // Installed version = base version. 
        public const int MSITRANSFORM_VALIDATE_NEWGREATEREQUALBASEVERSION = 0x00000200; // Installed version >= base version. 
        public const int MSITRANSFORM_VALIDATE_NEWGREATERBASEVERSION = 0x00000400; // Installed version > base version. 
        public const int MSITRANSFORM_VALIDATE_UPGRADECODE = 0x00000800; // UpgradeCode must match base database. 
        #endregion

        #region MAPI
        [DllImport("MAPI32.DLL", CharSet = CharSet.Ansi)]
        public static extern int MAPILogon(IntPtr hwnd, string prf, string pw,
            int flg, int rsv, ref IntPtr sess);
        [DllImport("MAPI32.DLL")]
        public static extern int MAPILogoff(IntPtr sess, IntPtr hwnd,
            int flg, int rsv);
        [DllImport("MAPI32.DLL")]
        public static extern int MAPISendMail(IntPtr sess, IntPtr hwnd,
            MapiMessage message,
            int flg, int rsv);
        [DllImport("MAPI32.DLL", CharSet = CharSet.Ansi)]
        public static extern int MAPIFindNext(IntPtr sess, IntPtr hwnd, string typ,
            string seed, int flg, int rsv, StringBuilder id);
        [DllImport("MAPI32.DLL", CharSet = CharSet.Ansi)]
        public static extern int MAPIReadMail(IntPtr sess, IntPtr hwnd, string id,
            int flg, int rsv, ref IntPtr ptrmsg);
        [DllImport("MAPI32.DLL")]
        public static extern int MAPIFreeBuffer(IntPtr ptr);
        [DllImport("MAPI32.DLL", CharSet = CharSet.Ansi)]
        public static extern int MAPIDeleteMail(IntPtr sess, IntPtr hwnd, string id,
            int flg, int rsv);

        public const int MAPI_UNREAD_ONLY = 0x00000020;
        public const int MAPI_GUARANTEEFIFO = 0x00000100;
        public const int MAPI_LONGMSGID = 0x00004000;
        public const int MAPI_PEEK = 0x00000080;
        public const int MAPI_SUPR_ATTACH = 0x00000800;
        public const int MAPI_ENV_ONLY = 0x00000040;
        public const int MAPI_BODY_AS_FILE = 0x00000200;
        public const int MAPI_UNREAD = 0x00000001;
        public const int MAPI_RECEIPTREQ = 0x00000002;
        public const int MAPI_SENT = 0x00000004;
        public const int MAPI_ORIG = 0;
        public const int MAPI_TO = 1;
        public const int MAPI_CC = 2;
        public const int MAPI_BCC = 3;
        public const int MAPI_LOGON_UI = 0x00000001;
        public const int MAPI_PASSWORD_UI = 0x00020000;
        public const int MAPI_NEW_SESSION = 0x00000002;
        public const int MAPI_FORCE_DOWNLOAD = 0x00001000;
        public const int MAPI_EXTENDED_UI = 0x00000020;
        public const int MAPI_DIALOG = 0x00000008;

        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
        public class MapiMessage
        {
            public int reserved;
            public string subject;
            public string noteText;
            public string messageType;
            public string dateReceived;
            public string conversationID;
            public int flags;
            public IntPtr originator;		// MapiRecipDesc* [1]
            public int recipCount;
            public IntPtr recips;			// MapiRecipDesc* [n]
            public int fileCount;
            public IntPtr files;			// MapiFileDesc*  [n]
        }

        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
        public class MapiRecipDesc
        {
            public int reserved;
            public int recipClass;
            public string name;
            public string address;
            public int eIDSize;
            public IntPtr entryID;			// void*
        }

        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
        public class MapiFileDesc
        {
            public int reserved;
            public int flags;
            public int position;
            public string path;
            public string name;
            public IntPtr type;
        }

        public class MailEnvelop
        {
            public string id;
            public DateTime date;
            public string from;
            public string subject;
            public bool unread;
            public int atts;
        }

        public class MailAttach
        {
            public int position;
            public string path;
            public string name;
        }
        #endregion

        #endregion
    }
}
